eclipse的GEF相关项目说明。
各项目的简介:
Draw2D:建立了2维的图形库(树状图形部件Figure),负责显示2维的图形展示。
GEF: (Graphical Editing Framework)建立标准的MVC构架,代码利用Draw2D作为自己的View部分,主要代码实现复杂的树状(于Model分别对应) 的控制器。实现的框架具有很高的可复用等特性,例如:将图形部件功能分解为多个EditPolicy,这样使用者可以通过installEditPolicy接口来定制,以及扩充自己的某一功能特征。
EMF: (Eclipse Modeling Framework)首先在一个轻量级项目以及项目初期开发,Model常常采用拥有Property的Java对象来简单明了表示【即 Plain Old Java Objects (POJOs)】。EMF定义了一套Ecore元模型,使得Model具有易于维护、易于扩充、易于数据交换等特性的Model Framwork。因此、在实际中大型的项目中往往会采用Draw2D+GEF+EMF的方式来实现整体的MVC模式。例如:ROSE的最新版本 IBM.Rational.Software.Architect就是采用了这种构架。
GMF: (Graphical Modeling Framework )使用了GEF和EMF,建立了两个之间的桥梁框架,同时实现了一些领域上的典范应用,如UML图,甘特图,脑图等。(项目正在进行中这些功能还未完备。可以用来参考以实现自己的一个标准的GEF+EMF的应用)。
各项目依赖关系:
如上图:使用者可以有以下几种用法:
EMF: Model管理层
Draw2D: 二维图形展现
Draw2D + GEF: 二维图形的简单编辑模块
Draw2D + GEF + EMF: 二维图形的编辑模块
Draw2D + GEF + EMF + GMF:基于GMF提供的图形编辑功能之上扩展
【标注】这个文章是完全转载的,最近在看java图形方面的东东,看了GEF等也不是很理解它们之间的关系,看了这个,觉得写得不错,so转自。