WEB开发网
开发学院软件开发Java GEF 框架中的设计模式 阅读

GEF 框架中的设计模式

 2010-06-07 00:00:00 来源:WEB开发网   
核心提示: 图 1. GEF 中的模型-视图-控制器 (images/gef_mvc_pattern.jpg)GEF 中的模型可以是任意的数据,模型使用一种能在模型改变时通知控制器处理的事件通知机制,GEF 框架中的设计模式(2),这种模型可以由手工来实现,也可以通过 EMF(Eclipse Modelin

图 1. GEF 中的模型-视图-控制器 (images/gef_mvc_pattern.jpg)
GEF 框架中的设计模式

GEF 中的模型可以是任意的数据。模型使用一种能在模型改变时通知控制器处理的事件通知机制。这种模型可以由手工来实现,也可以通过 EMF(Eclipse Modeling Framework) 自动生成。而对模型的修改一般由 Command 来完成。

EditParViewer 是 GEF 中的展现视图的地方。常见的 EditParViewer 有两种: GraphicalViewer 和 TreeViewer。GraphicalViewer 主要依靠 Draw2d 中的 Figure 来完成的。开发人员可以通过实现 IFigure 接口来完成复杂图形的设计。对于 TreeViewer 而言,则由 SWT 中的 Tree 和 TreeItem 来完成视图的绘制。

EditPart 对应 MVC 模式中的控制器,它维护着视图与模型的对应关系。在 AbstractGraphicalEditPart 中,createFigure 方法负责创建 Figure 图形,refreshVisuals 方法负责对 Figure 图形进行更新。一般情况下,模型与 EditPart 是一一对应的。模型数据的更新由 EditPart 所安装的编辑策略产生的 Command 来完成。GEF 框架中的常见的 EditPart 实现有三种,分别是 GraphicalEditPart,ConnecitonEditPart 和 TreeEditPart。

命令 (Command)

GEF 不会直接修改模型,而是要求使用命令来做实际的修改。通过命令,实现对模型或模型属性的修改和撤销。这样,GEF 编辑器就自动支持了模型修改的 undo/redo。

Command 类是 GEF 中的一个抽象类,主要实现如下几个方法:

execute:这是命令的执行方法,当请求结束并获得 Command 后,GEF 框架 ( 通过 CommandStack) 负责执行此方法。

上一页  1 2 3 4 5 6 7  下一页

Tags:GEF 框架 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接