GEF in Action - 陈文权的博客- JavaEye技术网站

背景知识:

?

AWT:

???? JAVA最早的GUI技术,采用了“交集”的办法,即只支持每个图形系统都有的、最常用的控件和显示风格。
Swing:与AWTxx不同的策略,除了自己的一套标准的控件外,支持用户手绘界面,但xx脱离操作系统控件的支持,使得性能受到影响。
SWT:

???? 同时吸取了AWT和Swing的优点,目标平台上有的控件,SWT直接使用,没有的,采用Swing方式绘制。基本体系分为三层:1、SWT的API,2、JNI相关的代码,3、C语言实现的操作系统本地动态链接库文件。
JFace:基于SWT的工具箱,提供一些常见功能的实现框架,如对话框、{sx}项设置、向导、操作、查看器等。
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对应{wy}一个该对象)的命令堆栈里,用于实现撤消/重做功能。

?

实现

?????? 。。。。。。

?

一个简单的 GEF 示例:

?

?

郑重声明:资讯 【GEF in Action - 陈文权的博客- JavaEye技术网站】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——