以一个自定义的对话框的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;
}
分享到:
相关推荐
2. 设计图形编辑器:使用GMF Tooling的Diagram Editor和Edit Part Editor设计图形元素和交互。 3. 生成代码:通过GMF的Generate代码操作自动生成编辑器代码。 4. 运行编辑器:在Eclipse中运行生成的编辑器,验证功能...
GMF(Generic Modeling ...通过深入研究GMF ѧϰ和GMF 学习这两个文件,你将能够掌握GMF的基本概念,理解其工作原理,并具备使用GMF创建自己的图形编辑器的能力。在实践中不断探索和学习,你将逐渐成为GMF的专家。
此外,还可能涉及GMF工具链,如GMF Runtime、GMF Generation Framework和GMF Mapping Editor,这些都是构建GMF编辑器的关键组成部分。 "GMF_Tutorial中文版(一).doc"作为GMF的教程,很可能会提供一个逐步的指南,...
GMF简化了创建自定义图形编辑器的过程,通过生成代码和编辑器组件,使得开发者可以专注于业务逻辑而不是底层实现。 2. **EMF和GEF**:EMF是Eclipse用于构建模型的基础,它提供了一种在Java中表示和操作结构化数据的...
GMF(Graphical Modeling Framework)是Eclipse项目的一部分,它提供了一套完整的工具和框架用于创建图形化编辑器,帮助开发者快速构建复杂的模型编辑器。本文档将通过一个详细的案例来介绍如何使用GMF来开发一个FSM...
4. **自定义编辑器**:根据需要对生成的代码进行调整,添加额外的功能或修改默认行为。 5. **打包和部署**:将编辑器集成到Eclipse插件中,打包并发布。 在Eclipse插件GMF中,你还可以利用EMF(Eclipse Modeling ...
GMF(Generic Model Framework)是Eclipse平台下的一款强大的图形建模框架,它为开发者提供了构建图形用户界面(GUI)的工具,特别是用于创建复杂的图形编辑器和图表应用程序。GMF 1.7是最新的版本,它在前一版本的...
【GMF教程】GMF(Graphics Modeling Framework)是Eclipse平台下的一个图形...通过这个教程,读者可以了解到如何利用GMF构建一个简单的Mindmap图形编辑器,这对于理解GMF框架和开发自定义图形工具具有重要的实践意义。
GMF,全称是Graphical Modeling Framework,是Eclipse建模项目中的一个重要组成部分,它建立在GEF(Graphical Editor Framework)和EMF(Eclipse Modeling Framework)之上,为开发基于图形界面的编辑器提供了一种更...
GMF允许开发者定义复杂的模型和图形表示,通过模型到模型(M2M)和模型到视图(M2V)转换来生成编辑器的代码。GMF的强项在于它的自动化能力,可以自动生成编辑器的大部分代码,包括图形表示、编辑操作以及与模型的...
- 图形元素的定制,包括形状、连接线和属性编辑器,以便用户能够创建和修改工作流步骤。 - 编辑操作的实现,如拖放、剪切、复制、粘贴和撤销/重做功能。 - 图形的布局算法,确保工作流流程在界面上的合理排列。 - ...
一个简单的GMF例子可能是创建一个地图编辑器,用户可以在地图上添加点、线、面等地理对象,编辑它们的属性,如颜色、大小、标签等。同时,用户还可以通过图层控制来选择显示哪些数据,以及通过缩放和平移操作来查看...
《深入解析Eclipse GMF RAR技术》 在软件开发领域,Eclipse是一个广泛使用的集成开发环境(IDE...在实际项目中,通过熟练运用GMF RAR,开发者能够快速构建出符合业务需求的图形化编辑器,提高开发效率,降低维护成本。
`.editor` 文件则定义了编辑器的行为,如布局、连接线样式等。此外,还有 `.gen` 目录,包含自动生成的 Java 代码,这些代码实现了具体的图形元素和编辑操作。 接着,"org.eclipse.gmf.examples.mindmap"目录可能...
3. **生成代码**:基于你的模型,GMF会自动生成编辑器的大部分代码,包括图形表示(RCP视图)、编辑操作以及数据模型到图形的映射。 4. **实现细节**:尽管GMF自动生成了大部分基础结构,但你可能还需要编写一些...
GEF采用MVC架构模式,其中模型部分通常由EMF提供,视图部分使用Draw2D库实现,而控制器部分则负责处理用户交互。GEF通过这种分层架构极大地降低了界面开发的复杂度。 ##### GMF的定位与优势 GMF是基于EMF和GEF的,...