GMF 教程 Mindmap 1

原创
2013/03/12 10:07
阅读数 1.9K

本文是跟着英文教程做了一遍,并简单翻译、截图,做了一些补充,总算是实现了原文的效果。其中关于各种模型文件的介绍就略去了,想了解更多可查看原文。

这部分的内容就是从头创建一个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

展开阅读全文
打赏
2
2 收藏
分享
加载中
双子座博主

引用来自“Flourad”的评论

楼主您好:
文章中有几点小问题:
1. Domain Model Definition中下载mindmap.core文件命名错误,应该改为mindmap.ecore文件;
2. Running the Diagram下以Eclipse Application的方式运行容易让人看不明白,改为在org.eclipse.gmf.examples.mindmap.diagram文件上右击-> Run as -> Eclipse application会更好;
3. Running the Diagram下:在新的Eclispe中创建一个空的工程改为Create a new General Project应该会更清晰。
非常感谢您的建议,已经修改,谢谢!
2014/04/22 20:41
回复
举报
楼主您好:
文章中有几点小问题:
1. Domain Model Definition中下载mindmap.core文件命名错误,应该改为mindmap.ecore文件;
2. Running the Diagram下以Eclipse Application的方式运行容易让人看不明白,改为在org.eclipse.gmf.examples.mindmap.diagram文件上右击-> Run as -> Eclipse application会更好;
3. Running the Diagram下:在新的Eclispe中创建一个空的工程改为Create a new General Project应该会更清晰。
2014/04/22 15:47
回复
举报
我按照您给的步骤成功了~ imeiren.cn
2014/01/14 10:32
回复
举报
有时候能成功,但是有一堆的ERRORS,
The method getTarget() from the type TopicSubtopicsCreateCommand refers to the missing type Topic  TopicSubtopicsCreateCommand.java  /org.eclipse.gmf.examples.mindmap.diagram/src/mindmap/diagram/edit/commands  line 44  Java Problem之类的
2013/11/20 17:44
回复
举报
请问第11步执行失败:Problems while generating code
org.eclipse.gmf.examples.mindmap.diagram does not exist
是什么情况?
2013/11/20 17:42
回复
举报
更多评论
打赏
5 评论
2 收藏
2
分享
返回顶部
顶部