1. GEF的View实际上包含有很多部分,而不仅仅只是figure:
还包括visual parts, feedback, handles, toolipts等等.
It includes the visual part, which serves as the primary representation for the model object(s). The most flexible visual parts are Figures from draw2d. GEF also provides support for SWT TreeItems, but support for other visuals can easily be added. While "visual part" refers to the object primarily representing a model object, the more encompassing "view" includes feedback, handles, tooltips, and all things visible to the user. All of these make up the view, and it is the controller's job to construct and manage them.
2. Graphical editing可以被定义为:
1) 操作模型,这是通过对Request进行响应,生成Command来完成的。
2) 显示Feedback,在复杂的交互中,EditParts需要为用户显示操作的反馈。
3) 上面所提的两个工作,均可以被EditParts代理到其他额外的EditParts上。
3. EditPolicy的Role字符串的作用,是使得EditPolicy能够用过这个Key来进行替换。例如子类可以通过Role这个Key来覆盖其父类所安装的EditPolicy。在GEF中,Role和EditPolicies能够被划分为两类:Graphical和Non-Graphical。非图形的角色能够不需要知道任何View的信息来处理模型对象,也就是说这种角色在不同类型的viewers中是可重用的。
4. 角色及其定义
Non-Graphical Roles:
1) COMPONENT_ROLE:
一个Component存在于一个parent中,并且可以从parent中删除。更为一般的,它可以使任何只涉及到这个EditPart,而与View无关的东西。(More generally, it is anything that involves only this EditPart.)
2) CONNECTION_ROLE
这是ConnectionEditParts应该有的一个基本角色。Connections同Components有一点不同,删除Connections时通常还需要其从其source和target节点中删除,而不是从其parent中删除。
3) CONTAINER_ROLE
大部分拥有children的EditParts都应该具有这个角色。一个Container会涉及到adds/orphans以及creates/deletes等操作。
4) NODE_ROLE
如果一个EditParts用户Connection,则其应该具有这个角色,它可以用来创建,删除,重新连接一个Connection。
Graphical Roles:
1) PRIMARY_DRAG_ROLE:
用来允许用户拖动这个EditPart。用户可以通过点击这个EditPart然后拖动,或者点击这个EditPart所创建的一个Handle来进行拖动。
2) LAYOUT_ROLE:
Layout角色用来放在一个Container的EditPart上,这个EditPart拥有一个graphical layout。如果这个layout有constraints,则它需要通过计算来得到这个constraints。
3) GRAPHICAL_NODE_ROLE:
A node supports connections to terminals. When creating and manipulating connections, EditPolicies with this role might analyze a Request's data to perform "hit testing" on the graphical view and determine the semantics of the connection.
4) CONNECTION_ENDPOINTS_ROLE:
这个Role允许用户拖动一个ConnectionEditPart的端点。
5) CONNECTION_BENDPOINTS_ROLE:
这个Role允许用户能够在一个Connection中间拖动和创建bendpoints。
6) SELECTION_FEEDBACK_ROLE:
这个角色只是用来显示feedback。当鼠标进入或者在一个EditPart上暂停时,Selection Tool会发送两个类型的request给EditPart。安装了这个角色的EditPart能够在此时接受这些请求来改变view的样子,或者弹出tip,label等。
7) TREE_CONTAINER_ROLE:
SWT Tree的Layout Role。
分享到:
相关推荐
【标题】"GEF中文教程笔记1" 涉及的知识点主要集中在图形化编辑框架(Graphical Editing Framework,简称GEF)上,这是一款由Eclipse基金会开发的开源工具,用于构建图形用户界面(GUI),特别是用于创建复杂的图形...
这个名为"GEF Programmer Guide"的资源是为开发者提供的一份详细指南,帮助他们理解和使用GEF来构建自己的图形编辑应用。 GEF的核心概念基于MVC(模型-视图-控制器)设计模式,允许开发者将业务逻辑(模型)、用户...
标题"GEF_User_Guide_中文翻译"表明这是一份关于GEF(Graphical Editing Framework)用户指南的中文翻译版本。GEF是一个用于构建图形化用户界面的开源框架,主要应用于Eclipse平台。用户指南通常会包含如何使用GEF...
标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...
5. "eclipse插件开发快速入门图文教程.pdf" 和 "Eclipse插件开发学习笔记.pdf" 可能是针对Eclipse插件开发的一般性教程,对于理解GEF和Draw2D的上下文非常有帮助。 6. "jgraphx-1_10_0_6.zip.rar" 是JGraphX的压缩包...
**GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台上广泛使用,特别是在开发复杂的图形用户界面和工具时。本资料集旨在为初学者提供一个全面的入门指南,帮助理解GEF...
Gef,全称Graphical Editing Framework,是Eclipse项目的一部分,是一个用于构建图形编辑框架的开源库,主要用于开发基于Swing或SWT的图形用户界面应用。这个框架支持模型驱动的编辑环境,允许开发者创建复杂的图形...
**GEF(Graphical Editing Framework)** 是一个用于构建图形编辑工具的开源框架,它为开发人员提供了一套全面的库和工具,用于创建基于Eclipse的富客户端平台(RCP)的应用程序,特别是那些涉及图形用户界面(GUI)...
**GEF入门学习例子** **概述** `GEF`(Graphical Editing Framework)是Eclipse开源组织提供的一款强大的图形编辑框架,用于构建图形用户界面(GUI)应用,特别是那些需要进行图形绘制、编辑和操作的软件。这个入门...
### GEF简易教程知识点详解 #### 一、GEF简介与环境配置 **GEF**,全称为**Graphical Editing Framework**,是Eclipse平台上用于创建复杂图形编辑器的框架。它提供了一套完整的工具集,使开发者能够构建具有图形化...
GEF(Graphical Editing Framework)是Eclipse平台上一个强大的图形编辑框架,主要用于构建可视化的建模和图形编辑工具。更新到3.7.1版本,它提供了许多改进和新功能,以满足开发者在创建图形用户界面时的需求。在这...
### Eclipse的GEF框架深入解析 #### 一、GEF框架概述 GEF,全称为Graphical Editor Framework,是Eclipse平台下的一款图形编辑框架,主要用于构建图形化编辑器,如流程设计器、UML类图编辑器等。GEF遵循经典的MVC...
《GEF-SDK-3.6.2 jar:Eclipse GEF框架详解及在Android ADT中的应用》 GEF(Graphical Editing Framework)是Eclipse项目中的一个重要组成部分,它为开发图形化编辑器提供了强大的支持。在标题“GEF-SDK-3.6.2 jar...
**GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台中被广泛使用。**GEF-SDK-3.7.0** 是这个框架的一个特定版本,提供了开发人员构建图形用户界面(GUI)和可视化编辑...
**GEF(Graphical Editing Framework)教程与Demo源码详解** GEF,全称为Graphical Editing Framework,是Eclipse平台上用于构建图形化编辑器的一种框架。它为开发人员提供了丰富的工具,可以方便地创建出复杂的...
**GEF(Graphical Editing Framework)开发指南** GEF(Graphical Editing Framework)是Eclipse平台上用于构建图形编辑器的开源框架。它提供了一套全面的API和工具,使得开发者可以方便地创建出复杂的图形用户界面...
**GEF教程与DEMO源码解析** GEF(Graphical Editing Framework)是Eclipse平台下的一个图形编辑框架,主要用于构建可自定义的图形化编辑器。它为开发者提供了丰富的API和工具,使得开发人员可以方便地创建出复杂的...
### GEF快速入门教程与EMF教程概览 #### GEF HelloWorld 示例详解 本文将详细介绍如何使用Graphical Editing Framework (GEF)实现一个简单的“Hello World”示例,并结合Eclipse Modeling Framework (EMF)进行扩展...