gmf tutorail

原文 :http://blog.csdn.net/kabini/archive/2007/08/11/1738132.aspx

目前,联合使用EMFGEF来构建基于Eclipse的图形化应用程序已经越来越普遍。下面的许多参考资料都给出了如何将这两个框架整合使用的方法,其中的一些方法甚至需要深入到GMF工程内部。在进入GMF工程之前,让我们首先了解一下GMF是如何通过一个通用的方式来使用EMFGEF来完成既定任务的。另一篇关于GMF runtime部分的文章可以在这里找到:http://www.eclipse.org/articles/Article-Introducing-GMF/article.html

 

下图展示了在进行基于GMF应用开发时所需要使用的主要构件和模型。GMF的核心是一个概念模型(concept of a graphical definition model)。该模型包含了那些将会出现在基于GEFruntime中,且与图形元素相关联的各种信息,而这些信息是与那些提供描述和编辑功能的领域模型(domain model)没有直接关联的。工具定义模型(tooling definition model)是一个可选组件,它可以用来设计palette(注:就是我们用VE时常常会看到的选择组件用的面板)以及其他实用组件(菜单,工具栏,等等)。

gmf tutorail

 

我们希望图形化或工具组件的定义可以在面对不同的领域时仍然能正常工作。例如,UML的类图有很多counterpart,而所有这些conterpart的基本外观和结构都是十分相似的。GMF的一个目标就是允许一个图形化定义可以被很多领域复用。通过使用一个独立的映射模型来将图形定义和工具定义连接到所选择的领域模型,GMF漂亮的完成了这一目标。

一旦定义了合适的映射,GMF就会提供一个生成器模型(generator model)来帮助用户确定在生成阶段(generation phase)需要定义的各种实现细节。一个基于生成器模型编辑器插件将会作为这一过程的产生品,并将导致最终的模型[final model]的产生。最终模型也称为图形运行时[diagram runtime](或“符号”)模型。当一个用户工作在一个图形上时,该runtime将会把符号和领域模型桥接起来,并同时提供持久化和序列化功能(注:以上提到的这几种模型都有实物对应,现在先不必细究)。这个runtime的一个很重要的方面是它提供了一个基于服务的方法来使用EMFGEF,并且能通过non-generated式的应用程序来进行调整。

在了解了GMF的一些基本概念之后,接下来我们要将GMF应用到一个某一特殊领域的图形化编辑层的开发当中去。

 

 

 一个新的工程

 

GMF自带了一个“Tutorial Cheat Sheet”,你可以通过“Help | Cheat Sheets”来让它“显形”(主意,如果你已经将GMF安装到一个不含SDK的平台上,例如,使用Europa的更新管理器升级得到的GMF,你将需要从Window | Show View… | Other菜单打开Cheat Sheets的视图,然后从视图菜单中打开GMF Tutorial Cheat Sheet)。如果你打开了这个cheat sheet并遵照其提示的每一个步骤,你就能独立完成本文第一个阶段的大部分内容,并同时能获得一些以后需要的技能和知识。现在就试着建立你的新project吧。

 

 

 

你可能感兴趣的:(eclipse,应用服务器,框架,领域模型,UML)