本文是跟着英文教程做了一遍,并简单翻译、截图,做了一些补充,总算是实现了原文的效果。其中关于各种模型文件的介绍就略去了,想了解更多可查看原文。
这部分的内容就是从头创建一个GMF项目,实现一些小的功能。
下面每做好修改,都要及时保存。
创建项目
1、新建一个GMF项目:
File——New——Project,找到New GMF Project:
工程名称是org.eclipse.gmf.examples.mindmap
点击Next,在下一步选中Show dashboard view for the created project
PS:我的博客GMF分类第一篇文章就是用Dashboard做向导的,不过这篇英文没用到,而是每个模型文件都是用菜单创建的,掌握两种方法还是有必要的。
建好的项目,目录结构如下:
Domain Model Definition
2、下载mindmap.ecore文件:
http://help.eclipse.org/helios/topic/org.eclipse.gmf.doc/tutorials/tooling/mindmap.ecore
将它拷贝到工程的model目录下(可以直接在Eclispe中拷贝)
可以右击mindmap.core,选择Initialize ecore_diagram diagram file,以图形化的方式查看其内容:
3、New > Other,找到EMF generator Model:
Next,选择路径和设置文件名:
在下一步选择Ecore model,然后Next,加载mindmap.ecore,可能需要点一下Load才行:
接下来默认,直到Finish。
4、修改mindmap.genmodel的mindmap包的Base Package为org.eclipse.gmf.examples:
5、右击上图中的结点,选择Generate Model Code和Generate Edit Code:
这样会在原来的工程产生新的文件,并生成一个新的工程:
Graphical Definition
6、File——New——Other,找到Simple Graphical Definition Model:
在下一步选择存储路径和名称:
在下一步加载mindmap.ecore,并选择Map:
下一步,为Topic类选择最小的元素、连接集合,其他的都不要选,如下图:
点击Finish。
Tooling Definition
7、File——New——Other,找到Simple Tooling Definetion Model:
在下一步选择路径,输入名称:
在下一步,跟6中一样,加载mindmap.core,选择Map:
然后下一步,只要为Topic类做少量选择,如下图:
单击Finish。
Mapping Definition
8、File——New——Other,找到Guide Mapping Model Creation:
在下一步设置存储路径和名称,如下图:
在下一步,加载mindmap.ecore,并选择Map,如下图:
在下一步加载mindmap.gmftool,并保持默认选择mindmapPalette,如下图:
在下一步加载mindmap.gmfgraph,保持默认选择mindmap,如下图:
最后,选择结点和连线,如下图,不要多选:
9、需要手动操作的一件事情是为TopicNameLabel创建标签映射。如下图,为Node Mapping结点添加Child:Feature Label Mapping,属性设置如下:
选择Node Mapping,设置如下:
然后再选择Link Mapping结点,设置属性如下:
Code Generation
10、如下图,右击Mapping结点,选择Create generator model:
下一步:
下一步:
下一步:
下一步默认,完成。
11、右击新生成的mindmap.gmfgen,选择Generate diagram code:
成功的话,生成一个新的工程:
Running the Diagram
12、在org.eclipse.gmf.examples.mindmap.diagram工程上右击-> Run as -> Eclipse application:
在新的Eclispe中Create a new General Project,名称为mindmap,然后右击该工程,选择New——Example,找到Mindmap Diagram:
下两步都保持默认,完成。
13、如下图,是运行效果:
代码:http://www.oschina.net/code/snippet_164134_19115
双子座@开源中国:my.oschina.net/plumsoft