您的位置:首页 > 编程语言 > Java开发

GMF学习记录(一) GMF简介

2015-11-02 15:57 113 查看
摘要: 由于工作关系,开始接触Eclipse和GMF(Graphical Modeling Framework),我发现这方面的资料比较少,而且官方的wiki维护的很不好,所以想着把自己学习的一些心得分享一下。

(一)GMF和EMF、GEF的关系

EMF(Eclipse Modeling Framework)是Eclipse平台上很有名的插件项目,帮助我们以模型驱动的方式来开发Eclipse应用程序(这里Eclipse插件和Eclipse应用程序是一致的),简单来讲,就是开发者需要定义一个Ecore模型(和UML极其相似),该框架可以根据定义的模型,生成可以运行在Eclipse平台上的Java代码,最核心的是业务模型的创建。

GEF(Graphical Editing Framework)具有典型的MVC结构,可以帮助开发者非常方便的开发基于Eclipse平台的图形化应用程序,模型为基础,控制器负责将模型的改动映射到视图,并将用户在视图上面的操作反馈到模型上。视图方面采用Draw2D框架(http://www.eclipse.org/gef/draw2d/)构建。

GMF(Graphical Modeling Framework)简单来讲就是将EMF和GEF两个框架结合到一起,就是说,实现在EMF构建的模型基础之上,开发GEF应用程序,可以在模型方面大大简化,同时借助Eclipse的插件机制,GMF还有非常丰富的可扩展性,这样更加方便了开发。

(二)GMF开发流程



上图很清晰地展示了整个构建流程。

首先,建立我们的业务模型,即Domain Model,在该文件中可以定义包、所需要的类、数据类型、属性和方法等元素,框架中提供了一个比较方便的图形化编辑工具来帮助我们定义模型。

接下来根据模型新建*.genmodel(Domain Gen Model),该文件的作用是,解析我们建立的业务模型,生成相应的Java Model类。打开该文件,在根节点右击,选择“generate model”和“generate edit model”,生成*.edit。

然后新建*.gmfgraph(Graphical Def Model),该文件中可以定义在最后生成的应用程序中,画布中出现的元素属性,主要元素包括连接和节点两个类型,可以定义的属性包括,节点和连接的形状、颜色、尺寸等等。

根据model建立*.gmftool 文件,定义可出现的工具选项,包括节点和连接两种 。与graph中的元素对应。

根据业务模型、graph和tool,生成map model,即映射模型。该文件主要是实现了将graph中的元素与tool中的工具项对应起来。

*.gmfmap可以生成*.gmfgen文件,最终由gmfgen生成最终的diagram对应的代码。

注:第一次写博客,语言组织比较差劲,以后会改进,第一篇先大概写一点,后面会通过例子进行介绍,轻喷。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  GMF Eclipse