GEF(Graphical EditingFramework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型。GEF的优势是提供了标准的MVC(Model-View-Controller)结构,开发人员可以利用GEF来完成可视化编辑功能,而不需要自己重新设计。GEF对开发客户端软件具有得天独厚的优势,而且其标准的MVC架构同时也规范了程序开发人员的代码,限制了一些随意开发的代码,造成的代码难以维护的情况。
首先介绍一下GEF中常用的一些术语
• Model:需要开发者编写自己的模型,通常模型都会拥有一个没有参数的构造方法。
• View:直接使用Draw2D作为显示层实现。
• Controller:继承GEF提供的EditPart类,实现对模型以及显示的控制行为。控制器中可以安装多个。
• Policy:用来创建相应的命令。每一个Policy可以处理一类request。
• Command:执行用户的操作。GEF中实现用户操作的方式。
• Action: 同Rcp中Action
• GraphicalViewer:GEF的载体。
• GraphicalEditor:GraphicalViewer的载体,一个GraphicalEditor可以包含多个GraphicalViewer,每个GraphicalViewer可以中不同GEF实现。如常见的GraphicalEditorWithPalette就是包含工具箱的GraphicalEditor,其实现原理就是将PaletteViewer和GraphicViewer包在一个GraphicalEditor中。
• Layout: 布局 Draw2D 布局管理器。