现在开始系统的学习GEF,所以想把学习过程中的一些东西记下来,方便以后自己查阅,也方便别人共同学习。很多东西都是从别人那直接拷到这的,在这里先谢谢了。
一、需要依赖的两个包:
org.eclipse.gef org.eclipse.ui.views
二、创建Editor
创建编辑器的扩展点
GraphicalEditor是根类。我们的Editor可以直接实现这个类;如果想带有调色板,则至少需要继承GraphicalEditorWithPalette;如果还想调色板可收缩,则可继承GraphicalEditorWithFlyoutPalette。
编辑器一般要设置一个唯一的ID来表示这个编辑器:
public static final String ID = "tutogef.mygraphicaleditor";
三、添加EditDomain
在每个GEF的Editor里,都需要有一个EditDomain的存在
编辑域是一个起到管理作用的类,它绑定了一个编辑器、若干个查看器和若干个工具。因此它定义了真实的编辑器。编辑域还提供一个命令堆栈,用来保存所有执行过的命令,有两点好处:1.可实现重做和不做的操作2.可查看模型是否被改动。
一般来说在编辑器的构造方法里设置即可,如下代码:
public MyGraphicEditor(){
setEditDomain(new DefaultEditDomain(this));
}
四、实现IEditorInput接口
每一个编辑器都应该有相应的输入,这个类的作用估计也是这样。。具体是不是以后再修正。
五、默认情况下打开一个编辑器窗口
想让程序一运行后就打开一个编辑器窗口,应该在类ApplicationWorkbenchAdvisor中重写postStartup()方法,具体如下:
public void postStartup() {
try {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.openEditor(new MyEditorInput("TutoGEF"), MyGraphicalEditor.ID, false);
} catch (Exception e) {
e.printStackTrace();
}
}
六、扩展editor扩展点。。
经过以上六部,一个基本的程序就能运行了,以后将慢慢添加各种功能。
下面是目前的运行结果:
分享到:
相关推荐
由于工作的需要,最近开始研究GEF(Graphical Editor Framework)这个框架,它可以用来给用户提供图形化编辑模型的功能,从而提升用户体验,典型的应用如图形化的流程设计器、UML类图编辑器等等。
在"GEF入门系列宝典"中,我们将深入探讨如何使用GEF进行Eclipse插件开发,以创建自定义的图形编辑器。以下是一些关键知识点: 1. **Eclipse插件体系结构**: - 插件是Eclipse的核心组成部分,它们通过OSGi模块系统...
1. **基本概念**:介绍GEF的关键概念,如Figure、EditPart、Command、Model等,以及它们在图形编辑中的角色。 2. **图形组件**:讲解如何创建和操作图形元素,如矩形、圆形、文本等,以及如何添加连接线和组合图形。...
GEF入门系列,八进制 的GEF入门系列教程, 由社区经作者授权后整理而成GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。这样的应用程序有很...
**GEF入门系列 PDF 格式资料** GEF(Graphical Editing Framework)是Eclipse开源组织推出的一个图形编辑框架,主要用于构建可视化的图形编辑工具。它为开发人员提供了丰富的API和设计模式,使得创建复杂的图形用户...
1. `createMoveCommand(MoveRequest request)`:创建移动图形的命令,根据请求的源点和目标点计算新的位置。 2. `createResizeCommand(ResizeRequest request)`:创建调整大小的命令,根据请求的原始边界和新边界...
1. **GEF的基本概念** - **模型-视图-控制器(MVC)**:GEF基于经典的MVC设计模式,其中模型负责存储数据,视图负责显示数据,而控制器则处理用户交互。 - **编辑领域(EditPart)**:编辑领域是GEF中的核心组件,...
通过这个入门系列的学习,新手开发者将能够熟练运用EMF和GEF构建高效、直观的图形用户界面和模型驱动的应用程序,提升软件开发的效率和质量。同时,这也为深入研究更高级的MDD(Model Driven Development)技术打下...
"GEF入门系列宝典.doc"可能更侧重于实践,提供逐步的教程和实例,帮助初学者快速上手。它可能包含一些实际的代码示例,教你如何构建一个简单的图形编辑器,例如绘制流程图或网络拓扑图。 通过学习这两份资料,你将...
【GEF理解系列二】是深入学习GEF框架的第二部分,主要讲解如何配置和初始化Editor,以及如何创建多层结构以支持添加多个图形。GEF(Graphical Editing Framework)是一个用于构建图形编辑器的开源框架,常用于开发...
标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...
2. "GEF入门系列(一、Draw2D).doc" 可能是一个逐步的教学系列,从基础的Draw2D开始,逐步引入GEF的概念和应用。 3. "如何在Eclipse3.3.1.1中安装VE,emf,GEF插件.doc" 提供了在特定版本的Eclipse中安装相关插件的步骤...
3. **图形绘制**: GEF提供了一系列类来支持图形的绘制,包括`Figure`、`RectangleFigure`、`EdgeFigure`等。用户可以自定义这些图形类,实现特定的绘制逻辑。 4. **移动、删除、撤销/重做**: 这些基本操作通过GEF的...
1. 创建PathFigure实例:这是折线的基础,你可以设置其填充颜色、边框颜色等属性。 2. 创建Segment实例:如LineSegment、BezierSegment等,用于表示转折线的不同部分。每个Segment都有自己的坐标点,可以通过设置...
GEF的核心设计理念是将图形编辑器的实现分解为一系列可重用的组件,这些组件可以组合起来创建各种定制化的图形编辑环境。这个框架的主要组成部分包括: 1. **Model**:模型是编辑器的数据基础,定义了图形元素的...
1. **GEF-zest-sdk-3.8.0.zip**:这很可能是Zest图形库的SDK,Zest是GEF的一部分,专门用于构建图可视化。Zest提供了一组强大的API,用于创建和渲染复杂的图,如树形图、网络图等。这个SDK可能包含了Zest的头文件、...