原创 GEF应用的典型界面

2009-8-20 21:54 3299 7 7 分类: 软件与OS

GEF应用的典型界面

一个典型的GEF应用应当包括一下几个部分内容:

l        调色板

l        图形编辑和显示区域

l        属性栏

l        大纲等

 


色板就是工具箱,每个可以创建的图形元素都是工具箱的一项工具,在编辑器中添加元素时,只要从工具箱中选择创建的元素,拖入编辑器中指定位置即可。当然,
在编辑过程中,还需要不断选择修改元素,系统提供了选择单个图形元素(SelectTool)和一批元素(MarqueeTool)的选择工具,这两个工
具也是必须的。调色板是GEF编辑器的构件之一,在编辑器创建时,必须指定调色板。

GEF
实现的内容就是图形编辑,所以只要创建了GEF编辑器,就会有一个编辑区域,来存放和显示图形元素。在编辑图形元素时,拖动图形元素、修改图形元素的位置
和序列,受编辑器中画板的布局约束,如编辑器中的画板采用的是XYLayout布局,就可以改变图形元素的坐标位置,而一旦采用
ToolbarLayout,就只能改变图形元素在画板中的排列次序。

图形元素的属性不仅仅是位置,还有很多其他的内容,编辑这些属性方法很多,比如直接在图形元素上编辑、弹出窗口编辑等等,常用的和最好的方法是选择图形元素后,直接显示图形元素的所有属性,在属性栏中直接编辑。这样我们就需要调用EClipse的属性视图(PropertySheet)

图形元素如果很多,界面上无法看清楚怎么办?我们一般还需要一个大纲,在大纲中显示图形元素的列表或图表的缩略图,提供快速定位和选择。这时间,我们又要使用Eclipse的大纲功能(ContentOutline)。

虽然简单,说道这里,已经有些乱了,没有使用过的人可能就会对上述内容的排放提出疑问:上述内容如何组织。

这里需要涉及Eclipse的插件开发知识,GEF作为EClipse的一种插件,插件的工作台都是通过透视图(Perspective)来管理的,所以插件窗口打开时,指定一个透视图来管理界面,透视图中来确定视图和编辑器的摆放位置。

GEF程序架构

GEF采用的是MVC架构,结合Struts,阐述GEF程序构成。从事Web开发人员肯定了解Struts,通过与其对比,更容易快速了解GEF。

序号

Struts概念

GEF概念

备注

FormBean

Model

数据持久化对象

Action

EditPart

操作控制器

HTML Input

Figure

数据显示

DAO

Command

数据操作

Form

画布

图形元素容器

Expolorer

Editor

容器

上述内容只是简单的对比,虽然都是MVC架构,但是有些方面还是有区别的:

Struts中,持久层的变化不会触发Action,改变浏览器的显示;GEF中,模型通过实现PropertyChangeSupport变量,实现属性变化的追踪和反馈,模型属性的变化如果需要追踪和反馈,一旦修改属性时,会通知对应的EditPartEditPart中监听属性变化,修改视图的显示。

Struts中,HTML字段的变化不会立即通知控制器,除非表单提交,而GEF的EditPart会安装不同的策略,监视视图(Figure)属性的改变,调用不同的命令,修改模型属性。

 

GEF编辑器如何识别模型和显示模型

GEF编辑器在创建时必须指定调色板和控制器工厂,调色板将模型变为一种工具、控制器工厂实现模型和控制器的定义,将模型工具拖入编辑器时,GEF根据控制器工厂定义,找到模型对应的控制器。GEF中,每个模型都必须有对应的控制器,在控制器中,实现模型和视图(Figure)的对应、控制视图的改变等。

通过上述描述,我们应该清楚如何将相互分离的三者关联起来。

 

GEF编辑器的功能

前面已经讲了很多编辑器的功能,下面对编辑器的功能再做补充,因为编辑器的功能绝对不止上述内容。

对比Word我们就很清楚,编辑器必须具有打开、保存、监视文件修改、相关菜单、右键菜单、对象敏感菜单等等,GEF编辑器具有同样的功能。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条