文档章节

GMF 教程 Mindmap 1

双子座
 双子座
发布于 2013/03/12 10:07
字数 804
阅读 1354
收藏 1

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

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

© 著作权归作者所有

上一篇: GMF 教程 Mindmap 2
下一篇: Eclipse安装GMF插件
双子座
粉丝 540
博文 78
码字总数 61009
作品 0
南京
程序员
私信 提问
加载中

评论(5)

双子座
双子座 博主

引用来自“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应该会更清晰。
非常感谢您的建议,已经修改,谢谢!
F
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应该会更清晰。
李李光
我按照您给的步骤成功了~ imeiren.cn
l
lap_218
有时候能成功,但是有一堆的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之类的
l
lap_218
请问第11步执行失败:Problems while generating code
org.eclipse.gmf.examples.mindmap.diagram does not exist
是什么情况?
文章里的问题,请帮忙解答下

@双子座 你好,想跟你请教个问题: 在 GMF 教程 Mindmap 1这篇文章里,在mindmap.gmfgen右击Generate diagram code时出现初始化类的错误 请问怎么解决,谢谢了...

操场和巷口
2013/12/31
10
1
GMF 教程 Mindmap 2

对Step1做补充操作,主要增加的功能: 为Topic结点添加划分(compartment),实现结点嵌套,使得可以在结点上半部显示结点名称,在下半部可以添加新的内容(这里是加入Thread子结点) Graphi...

双子座
2013/03/13
1K
1
GMF 教程 Mindmap 3

Link Constraints 目前为止,工程运行一个Topic结点给自己连线,显然是没有意义的。接下来通过使用约束,避免这种现象。 1、打开mindmap.gmfmap,找到目前唯一的Link Mapping结点,右击,选择...

双子座
2013/03/15
640
0
GMF 教程 Mindmap 5

这一部分主要实现的是: 使用扩展的Plug-in为我们的Diagram添加一个自定义动作 Creating a Customization Plug-in 尽管可以给生成的代码添加备注@generated NOT来避免下次重新生成代码时覆盖...

双子座
2013/03/17
569
0
MDSF:如何使用GMF来做TOGAF建模工具

在MDSF:架构工具简要功能说明中说到我要做一个支持TOGAF的架构工具,本篇介绍一下如何使用GMF来做一个简单的建模工具。 前提知识   如果你还不知道生成建模工具的基本过程以及基础知识,请...

技术小胖子
2017/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部