GEF的相关内容.ppt

GEF的相关内容.ppt

GEF 学 习 总 结 湛 川 GEF学习 GEF介绍 GEF的相关内容 GEF组成 GEF的工作方式 GEF应用开发 GEF的其他功能 什么是GEF GEF(Graphical Editor Framework)是一个图形化编辑框架,提供以图行方式来编辑数据,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。这样的应用程序有很多,例如:UML类图编辑器、图形化XML编辑器、界面设计工具以及图形化数据库结构设计工具等等。 GEF的相关内容 Draw2D Draw2D是一个轻量级的图形系统,它适合用于GEF的View层,它在Eclipse中是一个独立的插件在org.eclipse.draw2d包中。 Draw2D是居于SWT的轻量级的控制并管理着图形绘制和各种的鼠标事件。Draw2D是一个标准的图形库,可以用来它来完成在Eclipse中完成创建图形的工作。 Figures 在Draw2D窗口中,所有的可见的部件都是拖拽到图形上的。图形类包含了很多方法,他们提供了一下的功能: 1. 在图形中注册和取消监听器。图形会通知监听器在图形中发生的鼠标事件。 2. 改变模型视图的时间,改变图形的视觉感官,拖拽图形的位置和改变图形的大小。 3. 当鼠标移动的时候可以设定特定的指针外观。 4. 管理图层的图形位置的操作,包括添加和删除子节点或者得到它们父类的图形。 GEF的相关内容 5. 设置得到FOCUS的迁移。 6. 得到图形的尺寸大小和位置。 7. 可以设置工具栏提供的功能。 GEF基本组成 模型: GEF的模型只与控制器打交道,而不知道任何与视图有关的东西。为了能让控制器知道模型的变化,应该把控制器作为事件监听者注册在模型中,当模型发生变化时,就触发相应的事件给控制器,后者负责通知各个视图进行更新。 典型的模型对象会包含PropertyChangeSupport类型的成员变量,用来维护监听器成员即控制器;对于与其他对象具有连接关系的模型,要维护连入/连出的连接列表;如果模型对应的节点具有大小和位置信息,还要维护它们。这些变量并不是模型本身必须的信息,维护它们使模型变得有些复杂,但可以通过构造一些抽象模型类来维持它们的可读性。 控制器: 在MVC结构里控制器是模型与视图之间的桥梁,也是整个GEF的核心。它不仅要监听模型的变化,当用户编辑视图时,还要把编辑结果反映到模型上。 GEF中的控制器是所谓的EditPart对象,更确切的说应该是一组EditPart对象共同组成了GEF的控制器这部分,每一个模型对象都对应一个EditPart对象。应用程序中需要有一个EditPartFactory对象负责根据给定模型对象创建对应的EditPart对象,这个工厂类将被视图利用来将模型和控制器连接起来。简单的说,只需两步: 1首先根据模型类型创建其控制器 2然后用setModel()函数连接模型和控制器。 每一个EditPart,都可以“安装”一些EditPolicy,对这个EditPart的特定操作会被交给已安装的对应EditPolicy处理。EditPolicy的主要功能是根据请求创建相应的命令(Command),而后者会直接操作模型对象。 EditPart的重要方法: active():在这里注册监听器到模型对象。 deactive():在这里将监听器从列表里删除。 propertyChange():在这里处理监听事件,决定使用何种方式刷新视图。 createFigure():这个方法返回模型在视图中的图形表示,是一个IFigure类型对象。 createEditPolicies():在这里增加适当的EditPolicy。 视图: GEF使用EditPartViewer作为视图,经常需要使用和实现的Editor是一个GraphicalEditorWithPalette(GEF提供的Editor,是EditorPart的子类,具有图形化编辑区域和一个工具条),这个Editor使用GraphicalEditViewer和PaletteViewer这两个视图类,PaletteViewer也是GraphicalEditViewer的子类。开发时要在configureGraphicalViewer()和initializeGraphicalViewer()这两个方法里对EditPartViewer进行定制,包括指定它的contents和EditPartFactory等等。 EditPartViewer同时也是ISelectionProvider,这样当用户在编辑区域做选择操作时,注册的Selection

文档评论(0)

1亿VIP精品文档

相关文档