什么是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部分的编辑

java gef_【插件开发】—— 12 GEF入门相关推荐

  1. Java学习笔记12——JVM入门

    文章目录 JVM简介和体系结构 JVM的位置 JVM的体系结构 类加载器 双亲委派机制 沙箱安全机制(了解即可) Native PC寄存器 方法区 栈 三种JVM 堆 新生区 永久区 堆内存调优 Jp ...

  2. [Eclipse]GEF入门系列(六、添加菜单和工具条)

    我发现一旦稍稍体会到GEF的妙处,就会很自然的被它吸引住.不仅是因为用它做出的图形界面好看,更重要的是,UI中最复杂和细微的问题,在GEF的设计中无不被周到的考虑并以适当的模式解决,当你了解了这些,完 ...

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

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

  4. 好程序员Java分享MySQL之SQL入门(一)

    好程序员Java分享MySQL之SQL入门(一)前言:各种版本的数据库中,有一种通用的语言用于管理数据库中的数据,它就是SQL,本章我们将学习基本的SQL语句. SQL的概述 Structured Q ...

  5. Java系列技术之JavaWeb入门-钟洪发-专题视频课程

    Java系列技术之JavaWeb入门-1193人已学习 课程介绍         JavaWeb里的基础核心技术 课程收益     把JavaWeb里的核心技术讲清楚! 讲师介绍     钟洪发更多讲 ...

  6. Java版AVG游戏开发入门示例[3]——脚本引擎的制作及应用

    源码下载地址:http://code.google.com/p/loon-simple/downloads/list 根据wikipedia的解释:脚本语言(Script language,scrip ...

  7. Java长存!12个Java长久占居主要地位的原因

    我们很容易就会遗忘那些曾经在猿群中大热而又被各种新技术掩盖直至堙灭的技术的价值.就拿COBOL这个老猿们当年所用的神器来说,就跟条死鱼一样被现代猿基本这么形容:没价值,腥臭,过时了,对你没好处.Jav ...

  8. Java 定时任务调度(8)--ElasticJob 入门实战(ElasticJob-Lite使用)

    ElasticJob 是一个分布式调度解决方案,由 2 个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成.本文主要介绍 ElasticJob-Lite 的 ...

  9. [Eclipse]GEF入门系列(序)

    前些天换了新电脑,本人一直处于兴奋中,基本是"不务正业"的状态.快过年了,虽然没什么动力干活,但我玩游戏技术比较差,魔兽3打电脑一家还很费劲,干脆写写帖子就当是休息吧! 由于工作的 ...

最新文章

  1. Spring Boot 前后端配合及接口化测试学习记录[3]
  2. 编码问题(BOM头简单了解)
  3. 前端小白的 docker 配置nginx踩坑之旅
  4. FJ集团企业级邮件服务器构建方案
  5. php解压功能的函数
  6. Linux学习:Linux基础命令集(2)
  7. (王道408考研数据结构)第六章图-第四节4:最短路径之迪杰斯特拉算法(思想、代码、演示、答题规范)
  8. Android Studio 编译异常Could not execute build using Gradle installation解决办法
  9. R语言ETL工程:插入与合并(add/bind)
  10. php7 imagick扩展,php7如何安装imagick扩展
  11. 如何设计卷积神经网络CNN?
  12. 【Qt+OpenCV配置简介】
  13. 百度地图api基本用法
  14. Tableau可视化项目
  15. NPC内网穿透教程-入门
  16. 光子映射光子追踪学习分享
  17. 将设备插入usb2.0端口_将鼠标插入USB 3.0端口有什么好处?
  18. RAID的基本工作模式
  19. CSS样式不生效技巧
  20. 2022-2028全球食品级柠檬酸镁行业调研及趋势分析报告

热门文章

  1. 超好用的Server酱,推送微信消息
  2. 写着代码的插画师—王凌 |WLOP|
  3. wlop一张多少钱_为什么都说wlop的画很烂?
  4. JavaScript:异步简介与Promise实践拓展
  5. java中图片排版_Java实现第八届蓝桥杯图形排版
  6. win10解决设置默认打开方式不生效问题
  7. 【干货】一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移等
  8. sklearn.datasets.make_blobs 生成符合高斯分布的点
  9. 钉钉邮箱登录入口_清博舆情钉钉小程序上线 ,五大优势三大亮点助力工作更高效...
  10. python使用matplotlib 画柱状图代码_Python 使用 matplotlib 画柱状图教程