这是GEF中文教程第一章总结,当然也参考了别人的自学笔记,写完之后我能更好的理解整个开发过程和相关技术点
1.创建一个plug-in project, 名称为gef, Dependencies加上org.eclipse.gef和org.eclipse.ui.views
2.创建一个Editor, 名称为FlowEditor, 继承GraphicalEditor
Editor系列类的继承关系如下:
org.eclipse.ui.part.WorkbenchPart 所有workbench part的抽象基类,包含ViewPart和EditorPart。
-org.eclipse.ui.part.EditorPart 所有workbench editor的抽象基类,Eclipse项目中的Editor都派生于它。
--org.eclipse.gef.ui.parts.GraphicalEditor GEF提供的editor的抽象基类,它包含一个GraphicalViewer控件。
---org.eclipse.gef.ui.parts.GraphicalEditorWithPalette 提供带Palette的Editor,它包含一个PaletteViewer控件和一个GraphicalViewer控件。
---org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette 提供的是flyout palette。
3.创建一个EditorInput, 名称为HelloEditorInput。每个Editor都需要有EditorInput作为起内容的提供者
4.Extensions添加org.eclipse.ui.editors, id为com.openstudy.gef.ui.FlowEditor, name为Flow, class为com.openstudy.gef.ui.FlowEditor
5.新建模型HelloModel, 普通的JavaBean, 只有一个Field, private String text = "Hello World";
6.创建一个EditPart, 名称为HelloEditPart, 继承AbstractGraphicalEditPart
protected IFigure createFigure() {
HelloModel model = (HelloModel) getModel();
Label label = new Label(); // 是org.eclipse.draw2d.Label
label.setText(model.getText());
return label;
}
7.创建一个EditPartFactory, 名称为HelloEditPartFactory
public EditPart createEditPart(EditPart arg0, Object model) {
EditPart part = getPartForElement(model);
// 通过setModel()方法连接模型与控制器。这样从EditPart就可以通过getModel()方法取得对应的模型。
part.setModel(model);
return part;
}
private EditPart getPartForElement(Object modelElement) {
// 根据模型类型创建控制器,每种模型对应一种控制器。
if (modelElement instanceof HelloModel)
return new HelloEditPart();
throw new RuntimeException("Can't create part for model element: "
+ ((modelElement != null) ? modelElement.getClass().getName(): "null"));
}
8.在editor中创建视图, 编辑FlowEditor类,修改initializeGraphicalViewer和configureGraphicalViewer两个方法
@Override
protected void initializeGraphicalViewer() {
getGraphicalViewer().setContents(new HelloModel());
}
@Override
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
getGraphicalViewer().setEditPartFactory(new HelloEditPartFactory());
}
9.创建一个FlowAction, 用来打开FlowEditor,主要内容为
IEditorInput input = new HelloEditorInput(new Path(path));
IWorkbenchPage page = window.getActivePage();
try {
page.openEditor(input, FlowEditor.ID, true);
} catch (PartInitException e) {
// handle error
}
10.修改ApplicationActionBarAdvisor,将FlowAction添加到菜单中.
11.修改ApplicationWorkbenchWindowAdvisor,改为在RCP启动后就自动打开一个FlowEditor
this.getWindowConfigurer().getWindow().getShell().setMaximized(true);
IEditorInput input = new HelloEditorInput();
IWorkbenchPage page = this.getWindowConfigurer().getWindow().getActivePage();
try {
page.openEditor(input, FlowEditor.ID, true);
} catch (PartInitException e) {
e.printStackTrace();
}
分享到:
相关推荐
总的来说,这个“GEF中文教程+代码”资源是学习和掌握GEF框架的理想材料。通过系统地学习和实践,开发者可以快速地掌握图形编辑器的开发技术,从而构建出自己的图形化应用。无论你是初学者还是有经验的开发者,这个...
### GEF(Graphical Editing Framework)入门教程知识点详解 #### 一、简介 GEF(Graphical Editing Framework),即图形编辑框架,是一种基于Java的技术,它作为Eclipse框架的一部分,由IBM开发。GEF为开发者提供...
### GEF简易教程知识点详解 #### 一、GEF简介与环境配置 **GEF**,全称为**Graphical Editing Framework**,是Eclipse平台上用于创建复杂图形编辑器的框架。它提供了一套完整的工具集,使开发者能够构建具有图形化...
### GEF实例教程知识点概述 #### 一、GEF简介与环境配置 - **GEF (Graphical Editing Framework)**:GEF是Eclipse平台提供的一个用于构建图形编辑器的框架,能够帮助开发者快速构建功能丰富的图形用户界面。适用于...
**GEF 入门教程** **一、GEF简介** GEF(Graphical Editing Framework)是Eclipse平台下的一个图形编辑框架,它为开发者提供了一套构建图形化用户界面(GUI)的工具,特别是用于创建复杂的图形编辑器。GEF主要用于...
【GEF入门版中文教程 源码】是针对RCP(Rich Client Platform)平台下图形编辑框架(Graphical Editor Framework,简称GEF)的学习资源,特别适合初学者。RCP是Eclipse组织提供的一种用于构建桌面应用的框架,而GEF...
### GEF快速入门教程与EMF教程概览 #### GEF HelloWorld 示例详解 本文将详细介绍如何使用Graphical Editing Framework (GEF)实现一个简单的“Hello World”示例,并结合Eclipse Modeling Framework (EMF)进行扩展...
### GEF中文教程知识点概述 #### 一、GEF简介与环境配置 - **GEF (Graphical Editing Framework)**:GEF是Eclipse平台提供的一个用于构建图形编辑器的框架,能够帮助开发者快速构建出复杂且功能丰富的图形界面编辑...
### GEF中文教程知识点梳理 #### 一、GEF简介及环境配置 - **GEF (Graphical Editing Framework)**:GEF是Eclipse平台提供的一个用于构建图形编辑器的框架,能够帮助开发者快速构建出复杂且功能丰富的图形界面编辑...
**GEF(Graphical Editing Framework)教程与Demo源码详解** GEF,全称为Graphical Editing Framework,是Eclipse平台上用于构建图形化编辑器的一种框架。它为开发人员提供了丰富的工具,可以方便地创建出复杂的...
**GEF(Graphical Editing Framework)入门教程:八进制版本源代码解析** GEF,全称为Graphical Editing Framework,是Eclipse项目的一部分,主要用于构建图形化编辑工具和应用程序。这个教程将带你深入理解GEF的...
### GEF教程精要 #### 引言:GEF框架概览 GEF,全称为Graphical Editor Framework,是Eclipse平台下一款强大的图形编辑框架,专为开发图形用户界面而设计。它允许开发者创建复杂的图形编辑器,如流程图编辑器、UML...
**GEF教程及DEMO源码详解** GEF(Graphical Editing Framework)是Eclipse平台下的一个图形编辑框架,主要用于构建可自定义的图形化编辑工具。它为开发者提供了丰富的API和模型,使得开发人员可以方便地创建出复杂...
1. **GEF基础概念** GEF的核心是其五层架构,包括Model(模型)、View(视图)、EditPart(编辑部件)、Figure(图形)和Command(命令)。模型负责存储数据,视图负责显示数据,EditPart作为模型和视图之间的桥梁...
eclipse GEF的官方教程,适合初学者
1. 阅读官方教程,了解GEF的基本概念和架构。 2. 实践教程中的示例项目,动手操作以加深理解。 3. 分析提供的PDF文档,研究更具体的实现细节。 4. 参考社区资源,如论坛讨论、博客文章和开源项目,解决遇到的问题。 ...
描述进一步说明了这个包中包含的具体内容,如“GEF_Tutorial”、“GEF实例”、“入门教程”以及“GEF-whole-upload”,这些都暗示了这是一个全面的学习资源,旨在帮助用户从基础到实践全方位掌握GEF。 GEF,全称为...