`
liugang594
  • 浏览: 990761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

定制GEF的Palette

    博客分类:
  • GEF
阅读更多

用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
分享到:
评论
1 楼 andy_gxl 2011-03-11  
楼主请问一下你的“点“java元素”就会出现一个列表”这块块怎么实现的。现在项目刚好要用到这块。

相关推荐

    GEF入门学习资料,简单地介绍了GEF使用过程中用到的基本类和函数的用法

    这个例子可以帮助我们了解 GEF 的典型功能,如 DirectEdit、Palette 等等。 在学习 GEF 的过程中,需要结合具体的例子,一边看代码,一边对照文档,然后自己动手做一做。这样可以帮助我们更好地理解 GEF 的各个组件...

    自己下的GEF资源打包

    标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...

    GEF入门必读 GEF入门系列 GEF-whole-upload

    GEF是Eclipse生态系统的一部分,利用Eclipse的插件体系,开发者可以通过编写插件来扩展其功能,创建定制化的图形编辑器。 **插件开发** 在Eclipse中至关重要,因为它是实现功能扩展的主要方式。GEF插件开发涉及创建...

    eclipse的GEF插件

    它为开发者提供了一种框架,支持创建可定制的、交互式的图形编辑器,使得开发人员可以构建复杂的图形化应用程序,如流程图、网络拓扑图、UML模型等。 1. **GEF简介** GEF是Eclipse工作台的一部分,基于Model-View-...

    GEF教程

    这些项目按序排列,从最简单的pt1开始,逐步添加新功能,最终形成一个具备DirectEdit、Palette等功能的图形编辑器。这种逐步递进的方式,不仅有助于读者理解GEF框架各组件之间的关系,还能激发其动手实践的兴趣,...

    GEF教程及demo源码GEF_RCP_DEMO.zip

    GEF的开放性和模块化设计使其具有高度的可扩展性和可定制性。开发者可以根据需求添加新的模型元素、编辑操作或图形效果。 通过学习这个教程和分析DEMO源码,开发者将能够熟练掌握如何在Java环境中使用GEF和SWT构建...

    GEF简易教程-学习GEF的入门教程

    创建Editor后,接下来是对Editor进行定制化开发。这包括但不限于: - **自定义图形元素**:通过EditParts定义图形的外观与行为。 - **模型绑定**:确保视图中的图形元素与模型数据保持一致。 - **事件处理**:实现...

    gef 转折线的相关方法实现和 GEF的API chm 格式

    Gef,全称Graphical Editing Framework,是Eclipse项目的一部分,是一个用于构建图形编辑框架的开源库,主要用于开发基于Swing或SWT的图形用户界面应用。这个框架支持模型驱动的编辑环境,允许开发者创建复杂的图形...

    Eclipse的GEF学习

    其丰富的API和高度可定制性,使开发者能够快速构建出既美观又实用的图形编辑界面,极大地提升了用户的工作效率和体验。 总之,GEF是Eclipse平台上一个强大而灵活的图形编辑框架,它通过清晰的MVC架构分离了数据、...

    GEF-SDK-3.6.2 jar

    6. **可扩展性**:GEF的插件体系结构允许开发者通过扩展点定制编辑器功能,满足不同项目的特殊需求。 在Android ADT中,GEF的作用主要体现在可视化布局编辑器上,它允许开发者通过拖放的方式设计XML布局文件,实时...

    GEF-ALL-3.2.zip_GEF-ALL-3.6.2 pudn_gef_gef 3.2 download_gef java

    **文档**:文档部分通常包含用户指南、开发者指南和API参考,这些文档可以帮助开发者快速了解GEF的使用方法,掌握各种接口和类的用法,以及如何扩展和定制GEF以适应特定项目的需求。通过阅读这些文档,初学者可以更...

    GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料

    【GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料】是一份综合性的资源包,包含了GEF(Graphical Editing Framework)的3.7和3.8版本以及与其相关的Draw2D库的学习材料。GEF是Eclipse平台上用于构建图形化编辑器框架的...

    GEF 3.10 eclipse 插件

    它为开发者提供了创建可定制的、基于模型的图形编辑器所需的各种组件和服务。GEF自1999年诞生以来,经历了多次版本迭代,其中3.10版本是一个重要的里程碑,引入了许多新特性和改进。 **二、Eclipse插件开发背景** ...

    GEF-Update-3.7.1.zip

    GEF(Graphical Editing Framework)是Eclipse平台上一个强大的图形编辑框架,主要用于构建可视化的建模和图形编辑工具。更新到3.7.1版本,它提供了许多改进和新功能,以满足开发者在创建图形用户界面时的需求。在这...

    GEF Example Source Code

    **GEF(Graphical Editing Framework)** 是一个用于构建图形编辑工具的开源框架,它为开发人员提供了一套全面的库和工具,用于创建基于Eclipse的富客户端平台(RCP)的应用程序,特别是那些涉及图形用户界面(GUI)...

    GEF入门学习例子

    **GEF入门学习例子** **概述** `GEF`(Graphical Editing Framework)是Eclipse开源组织提供的一款强大的图形编辑框架,用于构建图形用户界面(GUI)应用,特别是那些需要进行图形绘制、编辑和操作的软件。这个入门...

    GEF教程及demo源码

    通过阅读和调试DEMO源码,可以理解GEF的各个组件如何协同工作,以及如何扩展和定制自己的图形编辑工具。 **5. 进阶应用** - **Zest图渲染**: 结合Zest库,可以创建更丰富的图表类型,如树图、网络图。 - **自定义...

    gef-step3.zip_3gef_GEF eclipse_GEF-step2_gef_gef-st

    在Eclipse生态中,**GEF**扮演着核心角色,允许开发者创建出交互式的、可定制的图形编辑器。这些编辑器可以用来设计流程图、电路图、软件架构图等,广泛应用于软件工程、系统设计和许多其他领域。GEF提供了一种模型-...

    GEF-SDK-3.7.0

    **GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台中被广泛使用。**GEF-SDK-3.7.0** 是这个框架的一个特定版本,提供了开发人员构建图形用户界面(GUI)和可视化编辑...

Global site tag (gtag.js) - Google Analytics