GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。
本系列介绍GEF中的几个基本概念,包括如下部分:
GEF最早是Eclipse的一个内部项目,后来逐渐转变为Eclipse的一个开源工具项目,Eclipse的不少其他子项目都需要它的支持。
GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与 其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架 的局限(不过实际上还是很少有脱离Draw2D的实现)。
2.GEF工作原理
GEF 中模型和视图是两个完全没有联系的实体,两者都是通过控制器间接进行通信的。这样很好的解决了模型和视图之间的耦合,但是也增加了控制器的负担。GEF通 过请求和编辑策略及命令模式很好的解决了控制器的负担,使每一个部分保持最小的依赖关系。GEF的命令请求及响应流程如下:
(1)GEF框架接受用户的操作,并把操作转换成相应的请求。
(2)控制器接受请求并把请求交由相应的编辑策略管理器处理。
(3)编辑策略管理器个根据请求的类型新建相应的命令处理请求。
(4)GEF框架执行命令,命令负责对模型的修改。
(5)模型属性修改后,命令负责对模型的修改。
(6)监听器(控制器就是模型的监听器)监听到事件后处理相应的操作,并通知视图进行修改。
(7) 视图更新显示界面,使之与模型同步。
创建GEF编辑器,首先Eclipse创建控制器(EditorPart)设置好控制器的输入(IEditorInput),另外控制器将初始化EditDomain、viewers和palette等,如下图:
GEF结构图
本系列介绍GEF中的几个基本概念,包括如下部分:
- GEF概述
- 模型(Model)
- 视图(View)
- 控制器(Control)
- 请求和编辑策略(Request and EditPolicies)
- 命令(commands)
- 模型同步
- 选项板(PaletteRoot)
GEF最早是Eclipse的一个内部项目,后来逐渐转变为Eclipse的一个开源工具项目,Eclipse的不少其他子项目都需要它的支持。
GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与 其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架 的局限(不过实际上还是很少有脱离Draw2D的实现)。
2.GEF工作原理
GEF 中模型和视图是两个完全没有联系的实体,两者都是通过控制器间接进行通信的。这样很好的解决了模型和视图之间的耦合,但是也增加了控制器的负担。GEF通 过请求和编辑策略及命令模式很好的解决了控制器的负担,使每一个部分保持最小的依赖关系。GEF的命令请求及响应流程如下:
(1)GEF框架接受用户的操作,并把操作转换成相应的请求。
(2)控制器接受请求并把请求交由相应的编辑策略管理器处理。
(3)编辑策略管理器个根据请求的类型新建相应的命令处理请求。
(4)GEF框架执行命令,命令负责对模型的修改。
(5)模型属性修改后,命令负责对模型的修改。
(6)监听器(控制器就是模型的监听器)监听到事件后处理相应的操作,并通知视图进行修改。
(7) 视图更新显示界面,使之与模型同步。
创建GEF编辑器,首先Eclipse创建控制器(EditorPart)设置好控制器的输入(IEditorInput),另外控制器将初始化EditDomain、viewers和palette等,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/79d33fac60c00caa3d99ccbbb352ff23.gif)
GEF结构图