`
liugang594
  • 浏览: 981947 次
  • 性别: 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教程及demo源码GEF_RCP_DEMO.zip

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

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

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

    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.rarGEF.rar

    对于开发者来说,源代码是极其宝贵的,因为它允许他们深入理解框架的工作原理,进行定制化开发,或者对框架进行扩展。另一个文件名“GEF”可能是框架的可执行文件、配置文件或者其他的资源文件。 现在,我们详细...

    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)和可视化编辑...

    GEF_Tutorial.rar(GEF开发指南)

    **GEF(Graphical Editing Framework)开发指南** GEF(Graphical Editing Framework)是Eclipse平台上用于构建图形编辑器的开源框架。它提供了一套全面的API和工具,使得开发者可以方便地创建出复杂的图形用户界面...

    GEF-ALL-3.6.1.zip eclipse

    2. **源代码**:对于开发者来说,查看和理解源代码可以帮助他们更好地理解和定制GEF的功能。 3. **文档**:可能包含API参考、教程和用户指南,帮助开发者学习如何使用GEF。 4. **示例**:提供一些实际的项目示例,让...

    GEF-ALL-3.3.zip

    总的来说,GEF-ALL-3.3.zip为Eclipse用户提供了一个强大且灵活的框架,用于构建高度定制的图形编辑器。通过利用其丰富的API和设计模式,开发者可以快速开发出直观、用户友好的图形界面,应用于各种领域,如软件工程...

Global site tag (gtag.js) - Google Analytics