用GEF框架实现一个Editor时,会有一个默认的paletteViewer。
看源码就知道,这个paletteViewer也是用一种和GEF框架一样的方式实现的。要定制PaletteViewer,我们可以从重写editor的createPaletteViewerProvider()方法开始。
在createPaletteViewerProvider()需要返回一个palette的Provider。所以我们可以返回一个自己的provider的实现。
例如:
protected PaletteViewerProvider createPaletteViewerProvider() {
return new UMLPaletteViewerProvider(getEditDomain(),getPalettePreferences());
}
当然不用完全实现这个provider,我们可以让它继承PaletterViewerProvider,以重用大部分内容。
PaletteViewer具体实现是在Provider的createPaletterViewer()方法里,所以重写这个方法,提供自己的PaletteViewer替换掉缺省的PaletteViewer。例如:
public PaletteViewer createPaletteViewer(Composite parent) {
PaletteViewer pViewer = new UMLPaletteViewer(flyoutPreferences,getEditDomain());
pViewer.createControl(parent);
configurePaletteViewer(pViewer);
hookPaletteViewer(pViewer);
return pViewer;
}
在PaletteViewer实现中,如果要对每一种不用的类型的entry提供自己的外观实现,那重写PaletteEditPartFactory就是需要的。可以写一个类继承这个类,然后在viewer中设置factory为这个新的类。
进到factory里可以看到,每种类型的entry为对应的create方法。所以如果你像替换掉某个类型的实现方法,你就可以重写对应的方法,例如:
protected EditPart createDrawerEditPart(EditPart parentEditPart,
Object model) {
return new UMLDrawerEditpart(graphicalsEditDomain,parentEditPart, (PaletteDrawer) model,
flyoutPreferences);
}
这个editpart就像我们写的所有的gef应用的模型对应的editpart一样,如果需要有不同的显示,那就重写其中的createFigure()方法。例如可以实现一个如下样的palette。
之前这四个元素是直接放在一个drawer里面的,现在点“java元素”就会出现一个列表。同样可以创建元素。如果palette上的元素很多的时候,像这样倒更方便了。
因为paletteViewer的位置可以拖动,所以要做点好一点的话,就可以根据palette所在的位置进行适应,如下图:
可以和上图对比。当放到右边时,箭头和菜单都有变化
- 大小: 12.8 KB
- 大小: 9.6 KB
分享到:
相关推荐
这个例子可以帮助我们了解 GEF 的典型功能,如 DirectEdit、Palette 等等。 在学习 GEF 的过程中,需要结合具体的例子,一边看代码,一边对照文档,然后自己动手做一做。这样可以帮助我们更好地理解 GEF 的各个组件...
标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...
GEF是Eclipse生态系统的一部分,利用Eclipse的插件体系,开发者可以通过编写插件来扩展其功能,创建定制化的图形编辑器。 **插件开发** 在Eclipse中至关重要,因为它是实现功能扩展的主要方式。GEF插件开发涉及创建...
它为开发者提供了一种框架,支持创建可定制的、交互式的图形编辑器,使得开发人员可以构建复杂的图形化应用程序,如流程图、网络拓扑图、UML模型等。 1. **GEF简介** GEF是Eclipse工作台的一部分,基于Model-View-...
这些项目按序排列,从最简单的pt1开始,逐步添加新功能,最终形成一个具备DirectEdit、Palette等功能的图形编辑器。这种逐步递进的方式,不仅有助于读者理解GEF框架各组件之间的关系,还能激发其动手实践的兴趣,...
GEF的开放性和模块化设计使其具有高度的可扩展性和可定制性。开发者可以根据需求添加新的模型元素、编辑操作或图形效果。 通过学习这个教程和分析DEMO源码,开发者将能够熟练掌握如何在Java环境中使用GEF和SWT构建...
创建Editor后,接下来是对Editor进行定制化开发。这包括但不限于: - **自定义图形元素**:通过EditParts定义图形的外观与行为。 - **模型绑定**:确保视图中的图形元素与模型数据保持一致。 - **事件处理**:实现...
Gef,全称Graphical Editing Framework,是Eclipse项目的一部分,是一个用于构建图形编辑框架的开源库,主要用于开发基于Swing或SWT的图形用户界面应用。这个框架支持模型驱动的编辑环境,允许开发者创建复杂的图形...
其丰富的API和高度可定制性,使开发者能够快速构建出既美观又实用的图形编辑界面,极大地提升了用户的工作效率和体验。 总之,GEF是Eclipse平台上一个强大而灵活的图形编辑框架,它通过清晰的MVC架构分离了数据、...
6. **可扩展性**:GEF的插件体系结构允许开发者通过扩展点定制编辑器功能,满足不同项目的特殊需求。 在Android ADT中,GEF的作用主要体现在可视化布局编辑器上,它允许开发者通过拖放的方式设计XML布局文件,实时...
**文档**:文档部分通常包含用户指南、开发者指南和API参考,这些文档可以帮助开发者快速了解GEF的使用方法,掌握各种接口和类的用法,以及如何扩展和定制GEF以适应特定项目的需求。通过阅读这些文档,初学者可以更...
【GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料】是一份综合性的资源包,包含了GEF(Graphical Editing Framework)的3.7和3.8版本以及与其相关的Draw2D库的学习材料。GEF是Eclipse平台上用于构建图形化编辑器框架的...
它为开发者提供了创建可定制的、基于模型的图形编辑器所需的各种组件和服务。GEF自1999年诞生以来,经历了多次版本迭代,其中3.10版本是一个重要的里程碑,引入了许多新特性和改进。 **二、Eclipse插件开发背景** ...
GEF(Graphical Editing Framework)是Eclipse平台上一个强大的图形编辑框架,主要用于构建可视化的建模和图形编辑工具。更新到3.7.1版本,它提供了许多改进和新功能,以满足开发者在创建图形用户界面时的需求。在这...
**GEF(Graphical Editing Framework)** 是一个用于构建图形编辑工具的开源框架,它为开发人员提供了一套全面的库和工具,用于创建基于Eclipse的富客户端平台(RCP)的应用程序,特别是那些涉及图形用户界面(GUI)...
**GEF入门学习例子** **概述** `GEF`(Graphical Editing Framework)是Eclipse开源组织提供的一款强大的图形编辑框架,用于构建图形用户界面(GUI)应用,特别是那些需要进行图形绘制、编辑和操作的软件。这个入门...
通过阅读和调试DEMO源码,可以理解GEF的各个组件如何协同工作,以及如何扩展和定制自己的图形编辑工具。 **5. 进阶应用** - **Zest图渲染**: 结合Zest库,可以创建更丰富的图表类型,如树图、网络图。 - **自定义...
在Eclipse生态中,**GEF**扮演着核心角色,允许开发者创建出交互式的、可定制的图形编辑器。这些编辑器可以用来设计流程图、电路图、软件架构图等,广泛应用于软件工程、系统设计和许多其他领域。GEF提供了一种模型-...
**GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台中被广泛使用。**GEF-SDK-3.7.0** 是这个框架的一个特定版本,提供了开发人员构建图形用户界面(GUI)和可视化编辑...