一般来说,我们在做GEF的时候,通常是一个模型对应一个图,这个图例如就是简单的通过继承Figure得来的。
也有可能我们需要的图比较复杂,需要通过多个图的组合来得到一个模型的图。举个最简单的使用:
假如我们希望模型A的图是这个样子:有一个title区域和一个body区域,其中body区域是可以滚动的,如下:
figure 1
那么简单的,可以有一个大图,大图的clientArea区域是一个ScrollPane,然后在ScrollPane里就是body的内容。
假设A对应的图是A_Figure,它的body是A_BodyFigure;A对应的EditPart是A_EditPart,那么在A_EditPart的getFigure()方法里,应该返回的是A_Figure。
但是实际上剩下的操作都是在A_BodyFigure上进行,例如,这些<unnamed>子图是加在A_BodyFigure上的。
所以此时需要重写EditPart的另一个方法:
public IFigure getContentPane()
这个方法返回用来添加子图形的图形。默认情况下就是返回getFigure()方法:
/**
* If the children's Figures should be
* @see GraphicalEditPart#getContentPane()
*/
public IFigure getContentPane() {
return getFigure();
}
所以如果要得到A_BodyFigure,大致可以如下实现:
@Override
public IFigure getContentPane() {
ScrollPane child = (ScrollPane) getFigure().getChildren().get(0);
A_BodyFigure contents = (A_BodyFigure)child.getContents();
return contents;
}
然后剩下要做的就是谨慎区分什么时候调用getFigure()方法,什么时候调用getContentPane()方法。
- 大小: 4.3 KB
分享到:
相关推荐
GEF(Graphical Editing Framework)是Eclipse平台下的一个开源图形编辑框架,用于构建可视化的图形编辑工具。它提供了一套完整的架构和库,使得开发者能够快速、灵活地创建出复杂的图形用户界面,特别适合于开发...
- **Step 1-3**:基础概念和环境设置,讲解如何创建第一个GEF编辑器,包括模型定义、EditPart实现以及与Eclipse IDE的集成。 - **Step 4-5**:深入探讨模型-视图映射,包括图形元素的布局和连接线的绘制。 - **Step ...
在提供的"GEFApp"压缩包中,包含了一个基于GEF的简单应用实例。这个应用可能展示了一个基本的图形编辑环境,用户可能可以创建、移动和删除图形元素,以及通过连线连接不同的元素。源代码分析可以帮助我们理解GEF的...
有一个非常不错的例子可以帮助我们学习 GEF,这个例子包括六个项目,每一个项目都是在前一个项目的基础上增加一些功能的。这个例子可以帮助我们了解 GEF 的典型功能,如 DirectEdit、Palette 等等。 在学习 GEF 的...
3. **编辑器(Editor)**: 编辑器是Eclipse插件开发中的一个关键组件,它提供了对模型的编辑功能。GEF编辑器通常基于`AbstractGraphicalEditor`类,可以集成到Eclipse IDE中。 4. **指挥者(Commander)**: 指挥者处理...
总结来说,"GEF入门版中文教程 源码"是一个面向初学者的宝贵资源,它涵盖了GEF的主要概念和技术,结合源码实践,可以帮助开发者快速掌握图形化编辑器的开发技术,并为后续的RCP应用开发打下坚实基础。无论你是希望...
在描述中提到了一个博客链接,虽然内容没有给出,但我们可以推测博主可能在文章中详细解释了如何利用GEF进行图形动画或动态更新。在图形编辑器中,这可能包括元素的移动、旋转、缩放、添加和删除等操作,这些都需要...
总之,GEF是Eclipse平台上一个强大而灵活的图形编辑框架,它通过清晰的MVC架构分离了数据、控制和展示三个层面,为开发者提供了一个高效构建图形编辑应用的平台。无论是初学者还是经验丰富的开发者,掌握GEF都将为...
总之,通过这个"GEF入门实例代码2",开发者可以了解到如何在Eclipse中构建一个基于GEF的图形编辑器,这不仅涉及数据模型的设计,还包括视图的绘制、用户交互的处理以及可撤销/重做机制的实现。通过实践,开发者可以...
《Eclipse开发使用GEF和EMF》是IBM红皮书系列中的一部经典著作,主要探讨了如何在Eclipse环境中利用GEF(图形编辑框架)和EMF( Eclipse模型框架)进行图形化应用程序的开发。这两项技术是Eclipse平台上的核心组件,...
标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...
GEF(Graphical Editing Framework)是Eclipse平台中的一个组件,主要用于创建图形化的编辑器。它提供了一套完整的框架,用于构建可扩展的、交互式的图形编辑应用程序,特别是针对那些需要可视表示的数据模型。GEF为...
在本实例中,我们将探讨如何利用GEF实现一个简单的MVC(Model-View-Controller)架构,这是一种常见的软件设计模式,用于分离应用程序的数据、显示逻辑和用户交互。 1. **GEF框架基础**: - **模型(Model)**:...
在Java编程中,GEF是一个非常有价值的工具,因为它简化了图形界面的开发过程,使开发者可以专注于业务逻辑而不是底层的图形绘制。 **Eclipse** 是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、...
在本教程中,我们将深入理解GEF的基本概念,并通过提供的"gef入门.pdf"文档和"test.gef.hello"源码,一步步学习如何构建一个简单的Hello World应用。 首先,让我们来看看"gef入门.pdf"文档中的关键知识点: 1. **...
GEF是一个用于构建图形用户界面的框架,特别是为创建基于图的编辑器提供支持。它提供了基础的绘图功能,包括图形元素的创建、布局、选择、连接和拖放等操作。GEF允许开发者定义自己的模型,并通过模型驱动的方式来...
**GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它由Eclipse项目提供,主要用于创建复杂、可定制的图形用户界面(GUI)。GEF为开发人员提供了丰富的工具和API,使得创建具有拖放...
描述中的"GEF Example Source Code"进一步强调了这是一个专注于GEF实际应用的代码资源,可能是为了教学目的或帮助开发者快速上手。通过查看和分析这些示例代码,开发者可以学习到如何处理图形绘制、交互操作、模型...
- `org.eclipse.gef.EditPart`:这是GEF的核心组件,它代表了图形模型中的一个元素,并负责将其映射到视图中。 - `org.eclipse.gef.GraphicalEditPart`:是EditPart的一个子类,专门处理图形元素的绘制和交互。 - `...