背景知识:
AWT:
JAVA最早的GUI技术,采用了“交集”的办法,即只支持每个图形系统都有的、最常用的控件和显示风格。
Swing:与AWT完全不同的策略,除了自己的一套标准的控件外,支持用户手绘界面,但完全脱离操作系统控件的支持,使得性能受到影响。
SWT:
同时吸取了AWT和Swing的优点,目标平台上有的控件,SWT直接使用,没有的,采用Swing方式绘制。基本体系分为三层:1、SWT的API,2、JNI相关的代码,3、C语言实现的操作系统本地动态链接库文件。
JFace:基于SWT的工具箱,提供一些常见功能的实现框架,如对话框、首选项设置、向导、操作、查看器等。
RCP:
构建一个基于Eclipse平台技术的应用程序所需要的最小集合,包括:Equniox、SWT/JFace、UI、Runtime,产品示例:IBM Lotus Notes Hannover,RCP再加上一些辅助功能就构成了Eclipse平台,如:Team、Debug、IDE UI、Ant、Update、Help、Search等。
EMF:
Eclipse Modeling Framework,原理:根据java接口、UML图生成数据模型的元模型 Ecore,再根据元模型生成实现代码。
Draw2D:
Draw2D是基于SWT的图形处理包,它适合用作GEF的View层,由以下几个部分组成:轻量系统类 LightweightSystem,画布Canvas,图形元素Figure,事件分配器EventDispatcher,更新管理器UpdateManager
GEF:
Graphical Editing Framework,用于开发图形界面相关的应用程序,如流程图、GUI设计工具、所见即所得的排版工具等,其生成的图形编辑器依赖于RCP技术。
引言
大部分GEF应用程序都实现为Eclipse的Editor,也就是说整个编辑区域是放置在一个Editor里的。所以典型的GEF应用程序具有一个图形编辑区域包含在一个Editor(例如GraphicalEditorWithPalette)里,可能有一个大纲视图和一个属性页,一个用于创建 EditPart实例的EditPartFactory,一些表示业务的模型对象,与模型对象对应的一些EditPart,每个EditPart对应一个 IFigure的子类对象显示给用户,一些EditPolicy对象,以及一些Command对象。
GEF应用程序的工作方式如下: EditPartViewer接受用户的操作,例如节点的选择、新增或删除等等,每个节点都对应一个EditPart对象,这个对象有一组按操作Role 分开的EditPolicy,每个EditPolicy会对应一些Command对象,Command最终对模型进行直接修改。用户的操作转换为 Request分配给适当的EditPolicy,由后者创建适当的Command来修改模型,这些Command会保留在EditDomain(专门用于维护EditPartViewer、Command等信息的对象,一般每个Editor对应唯一一个该对象)的命令堆栈里,用于实现撤消/重做功能。
实现
。。。。。。
一个简单的 GEF 示例: 点击下载
分享到:
相关推荐
GEF入门必读 GEF入门系列 GEF-whole-upload 感谢八进制
我下的资源的打包,希望有帮助,包括:GEF_Tutorial,GEF实例,入门教程,GEF-whole-upload
GEF eclipse 插件
GEF简易教程-学习GEF的入门教程,不错的gef入门教程
gef 绘图折线的实现方法。 gef API chm 格式
GEF: Graphical Editing Framework <br>GEF是一套MVC Framework,它能帮你比较容易的建立图形化的编辑器,V(View)的部分常常是基于SWT的Draw2D,因此Draw2D也看作是GEF的一部分。依赖:org.eclipse.gef***, org...
GEF 入门系列 GEF
GEF.rar GEF.rar GEF.rar
GEF理解之第三部分,学习gef必备文档资料啊,值得下载
GEF理解之第一部分,学习gef必备文档资料啊,值得下载
Agenda Start things off What is GEF? GEF Demo Draw2d Overview Example GEF Overview Break Hands-on Activity: Shapes Example
Eclipse插件GEF的介绍,对于学习GEF有很大帮助
GEF Example Source Code,
这是我自己在学习GEF的时候做的一些总结。 1、GEF中的概念比如Command,Tool,Request等等。 2、GEF中使用到的几种设计模式。 3、GEF中对鼠标键盘事件处理的机制、流程。
gef开发实例 gef开发的好例子,比较简单的实现了MVC的架构
Gef入门开发,详细解析。 Gef入门开发,详细解析 Gef入门开发,详细解析
这是我参考了一些其他资料,自己写的一个GEF示例程序。 在这个demo中你可以看到以下的功能: 1. 往画布上添加多种节点 2. 节点之间的连线 3. 节点内容的编辑功能 4. 删除连线 5. 删除节点 6. 对节点的拖动以改变...
GEF教程及demo源码
选自某个GEF高手的个人博客 是少有的学习GEF开发的好参考资料 Eclipse插件开发之GEF