GEF原理及实现系列(一、GEF概述)

GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。
本系列介绍GEF中的几个基本概念,包括如下部分:
  • GEF概述
  • 模型(Model)
  • 视图(View)
  • 控制器(Control)
  • 请求和编辑策略(Request and EditPolicies)
  • 命令(commands)
  • 模型同步
  • 选项板(PaletteRoot)
1.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结构图
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值