- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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)