`

自定义GMF编辑器属性视图的Cell Editor

    博客分类:
  • GMF
阅读更多
以一个自定义的对话框的Cell Editor的例子进行说明:
1)自定义***CellEditor 继承 DialogCellEditor,并覆盖openDialogBox()方法,返回要打开的对话框
2)自定义***PortPropertyDescriptor继承PropertyDescriptor,覆盖方法createEDataTypeCellEditor,返回步骤1定义的***CellEditor,如:
            protected CellEditor createEDataTypeCellEditor(EDataType e, Composite c) {
                EAttribute feature = (EAttribute) itemPropertyDescriptor
                  .getFeature(object);
                 if(ConnectionPackage.Literals. ***.equals(f eature)){
                     return new ***CellEditor(e, c, object, feature);
                  }
                 return super.createEDataTypeCellEditor(e,cc);
            }
3)自定义***PropertySource继承 PropertySource,并覆盖createPropertyDescriptor()方法,返回步骤2定义的***PortPropertyDescriptor:
     protected IPropertyDescriptor createPropertyDescriptor(IItemPropertyDescriptor des) {
     if (itemPropertyDescriptor != null) {
                         Object feature = des.getFeature(object);
if (ConnectionPackage.Literals.***.equals(feature) {
                    return new ***PropertyDescriptor(object, des);
}
     }
     return new PropertyDescriptor(object, des);
             }
4)找到***.diagram工程中***sheet包下的***PropertySection.java, 修改getPropertySource方法,返回步骤3定义的***PropertySourc:其中***ItemProvider为生成的***.edit工程中对应的提供器
    public IPropertySource getPropertySource(Object object) {
    if (object instanceof IPropertySource) {
    return (IPropertySource) object;
     }
     AdapterFactory af = getAdapterFactory(object);
     if (af != null){
                             IItemPropertySource ips = (IItemPropertySource) af.adapt(object,IItemPropertySource.class);
     if (ips != null) {
        if(ips instanceof ***ItemProvider){
            return new ***PropertySource(object, ips);
         }else {
                                   return new PropertySource(object, ips);
                                 }
     }
      }
    if (object instanceof IAdaptable) {
   return (IPropertySource) ((IAdaptable) object).getAdapter(IPropertySource.class);
     }
    return null;
              }
0
1
分享到:
评论

相关推荐

    15 分钟学会 Eclipse GMF

    2. 设计图形编辑器:使用GMF Tooling的Diagram Editor和Edit Part Editor设计图形元素和交互。 3. 生成代码:通过GMF的Generate代码操作自动生成编辑器代码。 4. 运行编辑器:在Eclipse中运行生成的编辑器,验证功能...

    GMF EMF

    GMF(Generic Modeling ...通过深入研究GMF ѧϰ和GMF 学习这两个文件,你将能够掌握GMF的基本概念,理解其工作原理,并具备使用GMF创建自己的图形编辑器的能力。在实践中不断探索和学习,你将逐渐成为GMF的专家。

    GMF介绍以及使用手册.rar

    此外,还可能涉及GMF工具链,如GMF Runtime、GMF Generation Framework和GMF Mapping Editor,这些都是构建GMF编辑器的关键组成部分。 "GMF_Tutorial中文版(一).doc"作为GMF的教程,很可能会提供一个逐步的指南,...

    GMF数据表建模例子

    GMF简化了创建自定义图形编辑器的过程,通过生成代码和编辑器组件,使得开发者可以专注于业务逻辑而不是底层实现。 2. **EMF和GEF**:EMF是Eclipse用于构建模型的基础,它提供了一种在Java中表示和操作结构化数据的...

    GMF开发FSM的完整的例子

    GMF(Graphical Modeling Framework)是Eclipse项目的一部分,它提供了一套完整的工具和框架用于创建图形化编辑器,帮助开发者快速构建复杂的模型编辑器。本文档将通过一个详细的案例来介绍如何使用GMF来开发一个FSM...

    Eclipse插件 GMF

    4. **自定义编辑器**:根据需要对生成的代码进行调整,添加额外的功能或修改默认行为。 5. **打包和部署**:将编辑器集成到Eclipse插件中,打包并发布。 在Eclipse插件GMF中,你还可以利用EMF(Eclipse Modeling ...

    gmf 1.7 最新版的gmf

    GMF(Generic Model Framework)是Eclipse平台下的一款强大的图形建模框架,它为开发者提供了构建图形用户界面(GUI)的工具,特别是用于创建复杂的图形编辑器和图表应用程序。GMF 1.7是最新的版本,它在前一版本的...

    GMF教程.doc

    【GMF教程】GMF(Graphics Modeling Framework)是Eclipse平台下的一个图形...通过这个教程,读者可以了解到如何利用GMF构建一个简单的Mindmap图形编辑器,这对于理解GMF框架和开发自定义图形工具具有重要的实践意义。

    GMF实例解析.pdf

    GMF,全称是Graphical Modeling Framework,是Eclipse建模项目中的一个重要组成部分,它建立在GEF(Graphical Editor Framework)和EMF(Eclipse Modeling Framework)之上,为开发基于图形界面的编辑器提供了一种更...

    eclipse gef ve gmf

    GMF允许开发者定义复杂的模型和图形表示,通过模型到模型(M2M)和模型到视图(M2V)转换来生成编辑器的代码。GMF的强项在于它的自动化能力,可以自动生成编辑器的大部分代码,包括图形表示、编辑操作以及与模型的...

    eclipse GMF 制作简单工作流流程设计器(3)

    - 图形元素的定制,包括形状、连接线和属性编辑器,以便用户能够创建和修改工作流步骤。 - 编辑操作的实现,如拖放、剪切、复制、粘贴和撤销/重做功能。 - 图形的布局算法,确保工作流流程在界面上的合理排列。 - ...

    gmf例子

    一个简单的GMF例子可能是创建一个地图编辑器,用户可以在地图上添加点、线、面等地理对象,编辑它们的属性,如颜色、大小、标签等。同时,用户还可以通过图层控制来选择显示哪些数据,以及通过缩放和平移操作来查看...

    org.eclipse.gmf.rar

    《深入解析Eclipse GMF RAR技术》 在软件开发领域,Eclipse是一个广泛使用的集成开发环境(IDE...在实际项目中,通过熟练运用GMF RAR,开发者能够快速构建出符合业务需求的图形化编辑器,提高开发效率,降低维护成本。

    《GMF Mindmap 教程:Step 2_1》最终代码.

    `.editor` 文件则定义了编辑器的行为,如布局、连接线样式等。此外,还有 `.gen` 目录,包含自动生成的 Java 代码,这些代码实现了具体的图形元素和编辑操作。 接着,"org.eclipse.gmf.examples.mindmap"目录可能...

    一个简单的GMF实例

    3. **生成代码**:基于你的模型,GMF会自动生成编辑器的大部分代码,包括图形表示(RCP视图)、编辑操作以及数据模型到图形的映射。 4. **实现细节**:尽管GMF自动生成了大部分基础结构,但你可能还需要编写一些...

    图形建模框架GMF综述

    GEF采用MVC架构模式,其中模型部分通常由EMF提供,视图部分使用Draw2D库实现,而控制器部分则负责处理用户交互。GEF通过这种分层架构极大地降低了界面开发的复杂度。 ##### GMF的定位与优势 GMF是基于EMF和GEF的,...

Global site tag (gtag.js) - Google Analytics