GEF(Graphical Editor Framework) Eclipse项目入门系列(1)---概述

GEF的英文全称是Graphical Editor Framework。GEF的中文书籍在市面上面基本没有的。但是很多的Eclipse的二次开发项目可能却需要用到Eclipse的GEF的相关技术。GEF是一个Eclipse的项目之一,著名的XMind软件(http://www.xmind.net/)就是基于GEF开发的,如下图说示意,做出来的界面非常的漂亮和灵活,另外,WindowBuilder工具(http://www.eclipse.org/wb)也是基GEF开发的,此外Apache的一个BPEL的一个项目也是基于GEF开发的。上面只是其中三个例子,类似的其他的例子非常的多,笔者就不在一一列举。

既然现在我们已经知道了GEF能做什么了,那么GEF的框架是如何组成的呢?换句话说,学习GEF需要学习和了解哪些技术呢?各位看官,且听笔者慢慢给你娓娓道来。

GEF Eclipse项目主要由三大部门组成:Draw2D, Zest 和 GEF。 读者看到这可能就会感到奇怪了,为什么GEF Eclipse项目还包括GEF自身呢?其实很好理解,就是用GEF这一部分代替整个的GEF Eclipse项目,就好比,我们有的时候,用北京来代替中国一样,只是一个名称罢了。下面分别介绍下面这个三个组成部分:

(1) Draw2D

Draw2D是一个轻量级的画图框架。所谓的轻量级是相对于重量级而言的,轻量级是指这些被Draw2D绘制的图形(figure)是有纯Java对象绘制出来的,和具体的操作系统资源没有直接的联系。而重量级意思就是每一个SWT的widgets(部件)都是和具体操作系统资源相关的API。废话少说,那么Draw2D主要的功能是什么呢?说白了,Draw2D主要用来显示图形信息,所以的Draw2D图形都是在SWT的画布(canvas)里面显示的,需要注意的是,其没有提供交互的行为。

(2) Zest

Zest 是建立在Draw2D框架之上的一个框架。其提供了类似于Jface的功能(Jface相对于SWT来说)。使用Zest 能非常容易的把一个Java的模型和Draw2D的图形绑定在一起。

(3)GEF

GEF 也是建立在Draw2D框架之上的一个框架。提供了非常非常丰富的API,能够让用户和图形界面进行交互,比如拖拽画板(palette),打印,对图形界面的实物操作(比如,图形画错了,取消或者回滚)等。

总之,下面一幅图,代表了作者的千言万语。

笔者的后续文章,将分别一一介绍Draw2D,Zest和GEF的相关技术,并结合一些实际的例子,敬请期待。。。。。。。

时间: 2024-10-12 12:57:15

GEF(Graphical Editor Framework) Eclipse项目入门系列(1)---概述的相关文章

GEF(Graphical Editor Framework) Eclipse项目入门系列(2)---Draw2D开发环境的搭建

GEF(Graphical Editor Framework) Eclipse项目入门系列(1)---概述中,我们已经提到了Draw2D框架是GEF框架的重要组成部分.那么Draw2D的环境如何搭建起来呢?其实很简单,去Eclipse的官方网站下载一个Eclipse的开发环境(这一部门我就不再赘述,网上的资料很多).笔者本人的电脑上装的是Indigo,所以笔者将会以Eclipse Indigo为例子给大家演示Draw2D开发环境的搭建.具体情况,请见下面的步骤. (1) 打开Indigo Ecl

GEF(Graphical Editor Framework) Eclipse项目入门系列(3)---Draw2D例子演示

在"GEF(Graphical Editor Framework) Eclipse项目入门系列(2)---Draw2D开发环境的搭建"一文中,我给大家介绍了Draw2D的开发环境的搭建.下一步,根据软件行业的惯例,需要展示一个例子,这样大家才更有兴趣去学习和探索这门技术.好了,废话少说,作者就借花献佛,用Dan Rubel,Jaimen Wren和Eric Clayberg的一个例子Draw2D的例子和大家分享一下.这个例子包括两个类,GenealogyView和FigureMover

快速入门系列--MVC--01概述

虽然使用MVC已经不少年,相关技术的学习进行了多次,但是很多技术思路的理解其实都不够深入.其实就在MVC框架中有很多设计模式和设计思路的体现,例如DependencyResolver类就包含我们常见的DI依赖注入概念和注册表模式(GetService)等内容,ExceptionFilter等过滤器就体现AOP的概念,整个MVC内置了一个IOC容器,基本上所有的框架类的对象都是通过这种方式来创建的.此外,一直觉得很j2ee的spring很棒,其实如果大家很熟悉EHAB(微软企业开发库)的话,就会发

IBM规则引擎(ODM)入门系列一:如何编写规则项目

最近,因项目需要,研究使用IBM的规则引擎,但是网上相关资料甚少,只能查看IBM官网的相关文档,但大多是英文,所以学习过程相当痛苦,好在有IBM的技术支持人员帮助,在此,决定将自己对ODM的学习过程做成一个入门系列,巩固一下自己,同时惠及他人. ODM简介 ODM:Operational Decision Manager,直接翻译的话就是“决策管理系统”,什么是决策?决策就是业务人员或决策人员制定的业务规则,而ODM就是管理这些业务规则的一套系统.举个简单例子来说:一个店铺,双十一期间打折,根据

Maven入门系列(五)——在STS应用Maven项目开发入门

我写这个入门系列只是想给那些"Maven是什么"的学弟和学妹们一个快速入门的帮助,为了纪念曾经也走了很多弯路的自己,即使自己也还有很长的路在前面.所以,各路神仙就不要说什么太基础之类的话吧,有那个时间陪陪老爸老妈.哄哄妹子.玩两局dota也比在网上喷人强. 有了之前的几个blog,那么在实际开发中maven是帮助我们的呢. 最大的帮助,就是当我们需要一个第三方组件和框架时,我不需要再各种官网和论坛内找各种各样的jar了.有时候组件之间可能存在依赖,导致我们时常遗漏.(本文出自:http

C#入门系列(二)——第一个C#程序

C#入门系列目录 C#入门系列(一)——C#简介 C#入门系列(二)——第一个C#程序 上一节,我们讲了C#的特征及发展历史,本节内容我们将通过一个示例认识C#程序.C#中关键概念包括:程序.命名空间.类型.成员和程序集.C#程序由一个或多个源文件组成.程序声明类型,而类型则包含成员,并整理到命名空间中.类型示例包括类和接口.成员示例包括字段.方法.属性和事件.编译完的C#程序实际上会打包到程序集中.程序集的文件扩展名通常为.exe或.dll,具体取决于实现的是应用程序还是类库. C# Hell

WPF快速入门系列(1)——WPF布局概览

一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中主要的几个不同的特性,如依赖属性.命令.路由事件等. 在正式介绍之前,我还想分享下为什么我又要重新捡起来WPF呢?之前没有记录下来的原来主要是打算走互联网方向的,后面发现互联网方向经常加班,又累,有时候忙的连自己写了什么都不知道的,所以后面机缘巧合地进了一家外企,在外企不像互联网行业那样,比较清楚,有更多的时

IBM规则引擎(ODM)入门系列二:Rule Execution Server(RES)服务安装

今天开始了ODM入门系列之二,在这个系列中我会讲讲规则执行服务的搭建安装,规则集的打包发布以及如何将部署之后的规则集发布为web服务,供其他服务或应用使用. 首先,我们先看一幅图: 这是我画的一张ODM各组件之间关系,其中WEB APP是我们自己的项目或应用,可以通过web服务的形式来调用RES上已经部署的RuleApp包来执行规则. 再来看一张图: (截屏自IBM官网) 这是IBM官网上的一张介绍ODM不同组件如何交互的一张图. 从这两张图都可以看出RES在ODM整个产品中都起着一个非常重要的

[渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用高级功能

这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第十二篇:为ASP.NET MVC应用程序使用高级功能 原文:Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application 译文版权所有,谢绝全文转载--但您可以在您的网站上添加到该教程的链接. 在之前的教程中,您已经实现了继承.本教程引入了当你在使用实体框架Code