介绍
  前面也简单的介绍了一下插件开发的相关知识,下面主要就介绍一下GEF的相关使用。由于最近使用到编辑器这部分的操作,因此就跳过其他的内容,先介绍下GEF的相关知识。
 

    什么是GEF?

  GEF的英文全称是Graphical Editing Framework,也就是图形化编辑框架。它帮助我们轻松的创建一些模型,并提供富图形化的特性。有一张图已经不知道被翻过踩过多少遍了,但是真的就是这张图表达了GEF标准的MVC架构思想。
  可以看到,上面最显眼的三个部分就是Model,Controller以及View.这三个部分,也够成了GEF插件开发的核心。
  在GEF中,每一个模型都有自己的Editpart,也就是Controller,也有自己的Model,这个Model通常包含了模型的属性以及相关的信息。而Figure则是自己的一种展现方式。
  比如经典的两种图形,一种是用于模型的创建,一种用连接模型的连线。
  而每一个模型的Editpart都会绑定一些动作,这些动作被放在EditPolicy中,也就是一些动作策略里面。当有属性事件发生时,就会触发这个策略对应的操作,从而修改模型的属性。模型属性会触发一些监听事件,导致图形Figure的重绘。
  另外一张图,就重绘的响应机制:
  这里就不得不提Draw2D了。Draw2D是一种基于SWT的2D绘图框架,它有效的帮助我们完成了图形可视化的工作。
  这里面的LWS也就是Draw2D的核心,每次图形的响应时间都会传输到这里,通过分发器找到相应的图形,进行响应。
 
  在GEF可以编辑接近所有的图形,在你的模型中,你既可以简单的修改模型的特性,也可以进行一些复杂的操作。所有的修改操作都符合一般性的操作习惯,比如拖拽,删除,复制,粘贴,或者从菜单或工具栏上触发。
   

  学习资源

    第一种就是GEF本身带有的一些的学习文档以及样例。
    GEF SDK在Eclipse的Help里面提供了在线帮助文档。通过查看Draw2D Developers Guide,和GEF Developer Guide可以查阅一些基本的使用指南。
    另外呢,在 http://www.eclipse.org/gef上也有很多GEF的相关资料,比如一些代码,样例以及文档。
 

适合GEF的应用程序

  GEF可以开发很多种应用程序,几乎对于每一种图形都没有限制。最常见的程序就是建模工具了,比如企业流程、应用模型、以及一些UI界面。
  也有很多用于设计报表、网站,表单文档。也可以使用图形化编辑器来修改一些代码的样例,配置,服务器等等。、
  有很多优秀的开发产品,比如
 
  MDE for Struts
  为Struts开发的基于Eclipse的插件设计器,通过模型可以创建一些JSP,java , xml ,ant脚本等等文件,也可以通过模型生成一些样例代码
 
  
  Eclipse Desginer
  这个工具是基于SWT的设计工具,能够帮助我们可视化的完成一些RCP应用程序UI部分的编辑
 

【插件开发】—— 12 GEF入门的更多相关文章

  1. GEF入门实例_总结_04_Eclipse插件启动流程分析

    一.前言 本文承接上一节:GEF入门实例_总结_03_显示菜单和工具栏 注意到app目录下的6个类文件. 这6个文件对RCP应用程序而言非常重要,可能我们现在对这几个文件的理解还是云里雾里,这一节我们 ...

  2. GEF入门实例_总结_03_显示菜单和工具栏

    一.前言 本文承接上一节: GEF入门实例_总结_02_新建初始RCP空项目 这一节,我们来给我们的插件加上菜单. 二.基础知识 1.action bar.menubar.coolbar   含义 a ...

  3. GEF入门实例_总结_01_教程、源码、开发环境准备

    一.前言 最近在学Eclipse插件开发,发现了一个比较好的GEF入门教程,并且按照教程上的操作,一步步实现了一个入门Demo,在此感谢作者的贡献. 好记性不如烂笔头,故决定总结一下这段时间的学习心得 ...

  4. GEF入门实例_总结_06_为编辑器添加内容

    一.前言 本文承接上一节:GEF入门实例_总结_05_显示一个空白编辑器 在上一节我们为我们的插件添加了一个空白的编辑器,这一节我们将为此编辑器添加内容. 二.GEF的MVC模式 在此只简单总结一下, ...

  5. GEF入门实例_总结_05_显示一个空白编辑器

    一.前言 本文承接上一节:GEF入门实例_总结_04_Eclipse插件启动流程分析 在第三节( GEF入门实例_总结_03_显示菜单和工具栏  ),我们创建了菜单和工具栏. 这一节,我们来实现:点击 ...

  6. GEF入门实例_总结_02_新建初始RCP空项目

    一.前言 本节承接上一节: GEF入门实例_总结_01_教程.源码.开发环境准备 这一节我们来创建一个空的RCP项目. 二.新建RCP项目 1. New 一个 Plug-in Project 2.输入 ...

  7. GEF入门笔记

    最近项目中需要用到Eclipse GEF框架进行画图,故将平时学习笔记更新到博客中,便于查阅 自己画的一个GEF基本结构     最基本流程 1.创建model(包括数据域.在界面中的布局.图片索引等 ...

  8. Scala2.12 从入门到精通实战高端视频课程(含网盘下载地址)

    Scala快速入门到精通 下载地址链接:https://pan.baidu.com/s/1bTSZSlWftFYaLQL6lVH62A 提取码:ohfk 下载后使用视频中自带的专用播放器打开视频就能看 ...

  9. 1-2 Mobx 入门实践之TodoList(官方Demo)

    第一步:导入模块 import React, { Component } from 'react'; import { observable, autorun,computed } from 'mob ...

随机推荐

  1. Linux硬件监控

    https://blog.csdn.net/qq_30353203/article/details/62222882

  2. HDU 6333 莫队+组合数

    Problem B. Harvest of Apples Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K ...

  3. delphi操作xml学习笔记 之一 入门必读

    Delphi 对XML的支持---TXMLDocument类       Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocum ...

  4. 210 Course ScheduleII

    /* * 210 Course ScheduleII * 2016-6-9 by Mingyang * http://www.jyuan92.com/blog/leetcode-course-sche ...

  5. 【Todo】Java线程面试题 Top 50 (转载)

    原文链接:http://www.importnew.com/12773.html 这里有一个排版好看一点的:http://www.cnblogs.com/dolphin0520/p/3958019.h ...

  6. Linux驱动开发:USB驱动之usb_skel分析

    在学习了这么些天的驱动之后,个人觉得驱动就是个架构的问题,只要把架构弄清楚了 然后往里面添砖加瓦就可以了,所以似乎看起来不是太困难,但也许是是我经验不足吧,这只能算是个人浅见了 这两天在学习USB驱动 ...

  7. Markdown 语法和代码高亮

    安装 Python Markdown 安装命令 pip install markdown 视图中渲染 Markdown blog/views.py import markdown from djang ...

  8. 谈一谈关于NODE里的N管理

    模块可能与当前的NODE版本不和,NODE升级问题? 一切尽在掌握 1.首先设置好PATH(你安装的目录) Debian系列: sudo gedit /etc/profile Redhat系列: su ...

  9. url加密并计算时间

    将URL地址参数进行加密传输提高网站安全性 加密算法,直接调用就好 function keyED($txt,$encrypt_key){ $encrypt_key = md5($encrypt_key ...

  10. 《C++ Primer Plus》学习笔记3

    <C++ Primer Plus>学习笔记3 第8章 函数探幽 ============================================================== ...