`
Jameslyy
  • 浏览: 401767 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GEF (一) -- GEF简介及控制器EditPart

阅读更多

 

一 GEF简介

 

  GEF Graphical Editing Framework, 是Eclipse提供的图形编辑框架 ,采用MVC 框架模式实现,并使用了事件监听、Command和Policy模式实现控制和操作的功能。模型 对应业务逻辑,实现相应的接口,并添加事件监听器,实现对模型改变事件的监听。控制器 由GEF提供的EditPart实现,安装编辑策略,监听模型的变化,处理模型变化请求,执行相应的Command命令完成相应的操作,绘制图形。视图 部分由Eclipse提供的Draw2d实现,绘制相应的图形。

 

  在MVC(模型-视图-控制器)模型中,控制器通常是视图和模型之间唯一的连接者。控制器负责维护视图、解释UI事件并转化为对模型的操作。

  框架在应用的模型和视图之间提供了一种连接,也提供了输入Handler,例如tools和actions,把事件转换位请求Requests,Requests 和 Commands 用来封装交互行为和对模型产生的作用。下面是GEF中各角色的描述:

 

模型 (Model)

  模型可以是任何能够持久化的数据,任何模型都可以用在GEF中。模型必须具有一种通知机制,从非技术角度来讲,模型和命令(command)关系紧密。command作用就是通过一种能够撤销和重做的方式修改模型,通常,command只被用在模型本身。

 

视图 (View (Figure/Treeitems))

  视图是用户能够看到的任何东西,图形和树节点都能够用作视图元素。

 

控制器  (control (EditPart))

  通常每一个可视化模型对象对应一个控制器。这个控制器称为EditPart ,Editpart是模型和视图之间的连接,也负责图形编辑。Editpart包含称为EditPolicy的Helpler工具,它能够处理大量的编辑任务。

 

显示器 (Viewers)

  EditPartViewer 是控制器 editparts显示视图的地方。GEF提供两种Viewer,graphical viewer具备图形功能,tree viewer可以显示本地化(native)树节点。GEF viewer和JFace viewer类似,它们管理SWT控件,viewer也是一个选择提供器(selection provider),选择单元为控制器EditPart。

 

  GEF能够用在任何能够Workbench中使用SWT Control空间的地方,可以是一个editor、view、wizard page 等等。通常在Editpart使用,有时在editor编辑器的大纲页面中使用。GEF要求具备RCP(Eclipse Rich Client)和“view”(org.celipse.ui.views)插件环境,view插件提供了属性页支持。

 

二 控制器(EditPart)介绍

  EditPart把对应的视图和模型关联起来,并且形成它们自己的结构,通常对应模型的结构,例如,一个模型是一个包含节点的图表模型,那么会对一个包含子editpart的editpart。

  这种editpart的父子关系在图形里也是一样的。父图形包含子图形。通常是父类editpart的视图是一个包含几种子图形的复杂视图,其中一个图形被设计为面板,其他图形可以加入这个面板里。最终形成了一种三个近似相互对应的独立层次数据结构。

 

  连接是这种简单树状结构的例外。连接表示两个对象之间的连接和关联,视图使用Draw2d的连接图形。连接能够方便地式储存在模型中,但是其edipart被source editpart和target editpart管理。连接图形也比较特殊,它绘制在包含非连接图形的主要图层之上的一个特殊的层。

 

  GEF提供两种editpart实现。Graphical editpart使用figure(Draw2d)作为视图,支持连接,也即这些连接本身就是 Graphical editpart。另一种是tree editpart,使用SWT 树节点作为视图。

 

editpart的作用包括:

  • 创建和维护视图
  • 创建和维护子editpart
  • 创建和维护连接editpart
  • 支持模型编辑

  需要指出的是,维护视图和其他editpart意味着模型改变会通知给editpart。通常editpart 在关联的模型中添加监听器,当接收到通知,editpart根据模型的变化更新它的视图和结构。

 

 

分享到:
评论

相关推荐

    GEF-whole-upload.rar_GEF-whole-upload _gef_gef whole upload_whol

    **GEF(Graphical Editing Framework)**是Eclipse平台下的一个开源项目,专门用于构建图形化用户界面(GUI)和图形编辑工具。它为开发者提供了一套完整的框架,用于创建可自定义的、交互式的图形编辑环境。GEF的...

    GEF入门必读 GEF入门系列 GEF-whole-upload

    **GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台上广泛使用,特别是在开发复杂的图形用户界面和工具时。本资料集旨在为初学者提供一个全面的入门指南,帮助理解GEF...

    GEF-whole-upload

    根据给定的信息,本文将详细解释“GEF...通过构建RCP项目、设置依赖、创建Editor并定义GEF的基本结构(模型、控制器、视图),我们可以逐步实现一个功能完备的图形编辑器。这为后续深入研究GEF及其高级特性奠定了基础。

    GEF- runtime

    **GEF(Graphical Editing Framework)运行时**是Eclipse平台中的一个重要组成部分,主要用于构建图形化编辑工具。在Eclipse插件开发中,GEF提供了一套完整的框架,帮助开发者轻松创建可交互的、基于图的用户界面。...

    GEF-ALL-3.3.zip

    GEF是Java平台上的一个开源框架,主要用于构建图形用户界面(GUI),特别是用于创建可交互的、基于图的编辑器。这个框架提供了一整套工具,帮助开发者实现图形化的数据模型编辑,适用于各种应用程序,如建模工具、...

    GEF-whole-upload.pdf

    - 在GEF中,这部分主要由EditPart类实现。 - 相关类应该放置在`gef.tutorial.step.parts`或`gef.tutorial.step.editparts`包中。 3. **视图(View)**: - 视图负责渲染模型,并向用户提供视觉反馈。 - 在GEF中,...

    GEF-SDK-3.2.1

    在Eclipse环境中,GEF提供了一组强大的服务和模型,使得创建可自定义的、交互式的图形编辑器变得相对容易。这些服务包括图元(graphical figures)、连接线(connectors)、布局管理器(layout managers)以及各种...

    GEF-ALL-3.4.2(1).zip

    GEF的核心设计理念是将图形编辑器的实现分解为一系列可重用的组件,这些组件可以组合起来创建各种定制化的图形编辑环境。这个框架的主要组成部分包括: 1. **Model**:模型是编辑器的数据基础,定义了图形元素的...

    GEF-whole-upload.rar_gef_whole

    2. **创建第一个项目**:使用GEF工作流创建一个简单的图形编辑器,如画板和基本图形。 3. **实现命令**:编写自定义命令以处理用户操作,如添加、删除和移动图形元素。 4. **图形交互**:实现DirectEdit和手势识别,...

    GEF-Programmer-Guide.rar_gef

    GEF的核心概念基于MVC(模型-视图-控制器)设计模式,允许开发者将业务逻辑(模型)、用户界面(视图)和交互处理(控制器)分离,以实现模块化和灵活性。它提供了丰富的图形编辑组件,如连接线、图形节点、拖放操作...

    GEF-runtime-3.3.zip

    GEF,全称为Graphical Editing Framework,是Eclipse平台下的一个开源项目,主要用于构建图形化的编辑器。它为开发者提供了一套完整的框架,用于创建复杂的图形用户界面,尤其是那些需要进行图形绘制、编辑和操作的...

    GEF最好的学习文档,入门必读(GEF-whole-upload.pdf)

    - `gef.tutorial.step.parts` 或 `gef.tutorial.step.editparts`:存放与控制器相关的类,例如EditPart。 - `gef.tutorial.step.ui`:存放与视图相关的类,如Editor实现。 #### 七、创建Editor插件 最后一步是创建...

    GEF入门实例代码2《Eclipse插件开发》中实例

    这个实例代码2是《Eclipse插件开发》教程中的一部分,旨在帮助初学者理解如何利用GEF来创建自定义的图形编辑器。在Eclipse插件开发中,GEF提供了一套强大的框架,使得开发者可以方便地构建出功能丰富的图形用户界面...

    gef-step2.rar_GEF eclipse_gef

    **GEF(Graphical Editing Framework)图形编辑框架**是Eclipse平台下的一个重要组成部分,它为开发者提供了一套全面的工具和API,用于构建强大的图形用户界面(GUI)应用程序,特别是那些涉及图形化建模和编辑的...

    GEF快速入门教程和EMF教程

    - 控制器层主要由`EditPart`组成,它们负责将模型映射到视图,并处理用户输入。 - `EditPolicy`用于定义特定的编辑策略,如连接线的绘制、节点的移动等。 3. **视图 (View)**: - 视图层通过`EditPart`来呈现模型...

    GEF教程及demo源码

    **GEF教程及DEMO源码详解** GEF(Graphical Editing Framework)是Eclipse平台下的一个图形编辑框架,主要用于构建可自定义的图形化编辑工具。它为开发者提供了丰富的API和模型,使得开发人员可以方便地创建出复杂...

    GEF入门系列 pdf 格式资料

    - **模型-视图-控制器(MVC)**:GEF基于MVC设计模式,将图形元素的逻辑(模型)、显示(视图)和交互(控制器)分离,实现了高度可定制化和可扩展性。 - **Part和EditPart**:Part代表工作台上的一个独立组件,...

    GEF实例教程PDF

    #### 一、GEF简介与环境配置 - **GEF (Graphical Editing Framework)**:GEF是Eclipse平台提供的一个用于构建图形编辑器的框架,能够帮助开发者快速构建功能丰富的图形用户界面。适用于创建各种类型的图形编辑器,如...

Global site tag (gtag.js) - Google Analytics