GEF编程指南:模型、视图与编辑的桥梁

需积分: 9 18 下载量 162 浏览量 更新于2024-10-11 收藏 388KB PDF 举报
"GEF (Graphical Editing Framework) 是一个用于构建图形化编辑器的开源框架,主要在Eclipse平台上运行。此资源是GEF Programmer's Guide的中文翻译版,帮助开发者理解和使用GEF来创建复杂的图形用户界面。" GEF(Graphical Editing Framework)是一个强大的工具包,专门设计用于构建基于Eclipse的图形化编辑器和可视化应用程序。它基于Model-View-Controller(MVC)架构,使得开发者能够专注于模型的创建和编辑操作,而不是底层的图形绘制细节。GEF与Draw2D一起使用,Draw2D提供了基本的图形绘制和布局功能,而GEF则扩展了这些功能,添加了用户交互和编辑操作。 **何时使用GEF** 如果你需要为特定的数据模型构建一个图形化界面,允许用户通过拖放、选择和其他交互方式进行编辑,那么GEF就是一个理想的框架。它可以应用于各种领域,如软件建模、流程图编辑、网络配置等。 **EditParts - GEF的主要构成部分** EditParts是GEF中的关键组件,它们作为模型和视图之间的桥梁。每个EditPart对应一个可视化的模型对象,并且负责将用户的交互转化为对模型的操作。EditParts还包含了EditPolicies,这些策略定义了特定类型的编辑行为,例如连接、旋转、缩放等。 **图形界面 - 如何为你的模型创建图形界面** 使用GEF,你可以通过创建自定义的EditParts和 Figures 来构建图形界面。Figures是屏幕上实际可见的图形元素,而EditParts则管理这些元素并处理与模型的交互。 **编辑和编辑策略** 编辑策略(EditPolicy)是EditPart的一部分,它定义了特定编辑操作的逻辑。例如,如果用户尝试连接两个元素,一个连接编辑策略将负责处理这个操作,确保连接的合法性,并更新模型状态。 **EditPart生命周期** EditParts有自己的生命周期,包括创建、初始化、显示、更新和销毁等阶段。在这些阶段,EditPart会监听和响应各种事件,例如图形元素的添加、删除或改变。 **工具和绘图板 - 交互概述** GEF支持多种用户交互方式,如鼠标点击、拖放、键盘输入等。绘图板(Drawing Board)是用户与图形界面交互的地方,工具(Tools)则负责处理这些交互,将用户的动作转化为对模型的修改请求。 **请求(Request)和命令(Command)** 请求和命令是GEF中进行交互的核心机制。请求是用户操作的抽象表示,而命令是对模型进行修改的可撤销/重做的操作。当用户执行一个操作时,GEF会创建相应的请求,然后由控制器处理并执行相应的命令。 **模型(Model)** 模型是编辑器所表示的数据,它可以是任何持久化的信息。模型需要提供通知机制,以便在数据变化时通知视图进行更新。通常,模型与命令紧密关联,命令用来修改模型,并支持撤销/重做功能。 **视图(View)** 视图是用户看到和与之交互的图形界面,包括Figures和TreeItems。它们由EditParts管理,每个EditPart都与模型的一个部分相对应。 **控制器(Controller) - EditPart** EditPart作为控制器,连接模型和视图,处理用户交互并调用适当的EditPolicy来执行编辑操作。 **Viewers** EditPartViewer是GEF中的一个组件,它管理一组EditParts并负责它们的显示和布局。通过EditPartViewer,你可以实现对多个EditPart的组织和管理,创建复杂多层次的图形编辑界面。 GEF Programmer's Guide中文版为开发者提供了一个全面的指南,帮助他们利用GEF构建功能丰富的图形化编辑器,实现高效、直观的用户界面。无论是对于初学者还是经验丰富的Eclipse开发者,这都是一个宝贵的资源。