译 廖永为 武汉纺织大学
2010.10-2010.11
Front cover
Eclipse GEF和EMF开发
理解GEF和EMF框架
使用GEF和EMF开发
例子代码
ibm.com/redbooks
Bill Moore
David Dean
Anna Gerber
Gunnar Wagenknecht
Philippe Vanderheyden
译 廖永为 武汉纺织大学
国际技术支持组织
Eclipse GEF和EMF开发
2004年2月
2010.10-2010.11
SG24-6302-00
译 廖永为 武汉纺织大学
2010.10-2010.11
注意:在使用这本书提供的信息和产品之前,请先阅读第7页上的“注意事
项”。
第一版(2004年2月)
此版本适用于运行在widnows上的eclipse v2.1.1平台,EMF v1.1.0和GEF v2.1.1
©版权所有 IBM公司 2004
注意:美国用户使用限制—使用,复制或发布权属于IBM公司的GSA ADP合同名
单
译 廖永为 武汉纺织大学
2010.10-2010.11
目录
注意事项…………………………..………………………………………………………………..vi
商标…………………………………………………………………………………………………vii
前言…………………………………………………………………………………….…………viii
此书的写作团队…………………………………………………………………………………..viii
成为此书作者………………………………………………………………………………………xl
欢迎评论……………………………………………………………………………………………xl
PART 1 EMF 和 GEF 介绍…………………………………………………………………………………1
EMF 介绍 ....................................................................................................................................................................................3
1.1 什么是EMF? .................................................................................................................................................................4
1.2 EMF 框架基础...............................................................................................................................................................5
1.3 构建一个简单的模型.....................................................................................................................................................9
EMF 例子..................................................................................................................................................................................29
2.1 EMF 建模技术............................................................................................................................................................30
2.2 基于EMF.Edit 的编辑器和代码生成.........................................................................................................................45
2.3 模型实例和序列化.......................................................................................................................................................64
2.4 使用JET 定制代码生成..............................................................................................................................................79
GEF 介绍 ...................................................................................................................................................................................87
3.1 什么是GEF? ................................................................................................................................................................88
3.2 Draw2D 介绍................................................................................................................................................................93
3.3 GEF 框架....................................................................................................................................................................103
3.4 构建编辑器................................................................................................................................................................. 112
3.5 管理模型.....................................................................................................................................................................135
GEF 例子.................................................................................................................................................................................139
4.1 Additional concepts 其它概念....................................................................................................................................140
4.2 技术.............................................................................................................................................................................143
使用 GEF 和 EMF ..................................................................................................................................................................165
5.1 概述.............................................................................................................................................................................166
5.2 在基于GEF 应用程序中使用EMF .........................................................................................................................167
5.3 在基于GEF 编辑的开发中使用JET .......................................................................................................................180
PART 2...................................................................................................................................... 185
示例应用程序 ............................................................................................................................. 185
示例要求与设计 ......................................................................................................................................................................187
6.1 示例应用程序需求.....................................................................................................................................................188
6.2 示例应用程序设计.....................................................................................................................................................191
6.3 示例应用程序演示.....................................................................................................................................................200
译 廖永为 武汉纺织大学
2010.10-2010.11
实现示例 ..................................................................................................................................................................................203
7.1 概述.............................................................................................................................................................................204
7.2 体系结构.....................................................................................................................................................................204
7.3 模型.............................................................................................................................................................................214
7.4 实现多页面编辑器.....................................................................................................................................................220
更多资料 .................................................................................................................................... 225
书中缩写 .................................................................................................................................... 229
INDEX........................................................................................................................................ 233
译 廖永为 武汉纺织大学
2010.10-2010.11
注意事项
开发的产品和服务信息提供在美国。
此文档中介绍的产品,服务或功能,在其它国家 IBM 可能没有提供。可以向你所在地 IBM 代理商咨
询关于产品和服务方面的信息。任何关于 IBM 的产品,程序或服务不是为了说明或暗示只有 IBM 的产
品,程序或服务可用。任何没侵犯 IBM 知识产权的功能相同的产品,程序或服务都可以替代使用。但用
户有责任评估和检验非 IBM 产品,程序和服务。
此文档中包含了 IBM 的专利或正在申请中的专利。此文档没有给你提供任何专利使用许可证。若要
申请专利使用许可证,请写信到:IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk,
NY 10504-1785 U.S.A.
接下来的这段内容不适于英国或其它国家,这些内容与当地法律不同:IBM 公司不承担此刊物中的
明显的或内在的任何责任,此外,不侵权的含义是不限制用于特殊目的的销售。有些国家不允许在某些交
易中明显的或内在的责任。因此,这些陈述可能不适合于你。
此文档中的内容可能有技术误差或排版错误。文档中的信息会定期修改,修改的信息将成为新版本
的一部分。IBM 可能随时增加和修改此版本中介绍的产品或程序,但不事先通知。
任何关于非 IBM 网站信息仅仅是为了方便提供一些资料信息,并不以任何方式支持这些网站。在这
些网站中的资料不是 IBM 产品资料的一部分,使用这些网站上的资料存在着风险。
IBM 可能以其它方式发布一些你需要的信息,并用你不用承担任何责任。
非 IBM 产品的相关信息应该从这些产品的供应商获得,如产品供应商发布的说明或其它可用资源。
IBM 没有测试相关的一些非 IBM 产品,也不能确定其性能,兼容性或其它说明。非 IBM 产品的兼容性
应该联系这些产品的供应商。
此文档中的内容包含了一些日常商业操作中数据和报告的例子。为了尽可能完整地阐述,例子中包
含了个人,公司,商标和产品的名字。所有名字都是虚构的,如有相同的名字和地址的公司纯属巧合。
版权许可:
此文档中包含了示例应用程序的源代码,说明了在不同的操作平台上的编程技巧。你能以任何形式
复制、修改和发布这些示例程序,而且开发、使用、销售或发布与示例程序运行的平台编程接口一致的
应用程序也不用付费给 IBM。这些例子不是在所有条件下都能通过测试。因此,IBM 不保证其可靠
性,可用性或功能。你能以任何形式复制、修改和发布这些例子程序,而且开发、使用、销售或发布与
IBM 应用程序接口一致的应用程序也不用付费。
©版权所有.IBM公司.2004
vi
译 廖永为 武汉纺织大学
2010.10-2010.11
商标
DPI®
^™
IBM®
下面的这些词组是IBM公司在美国或其它国家的一些商标:
ibm.com®
Rational Rose®
Rational®
Redbooks™
Redbooks (logo) ™
下面的这些词组是其它公司的商标:
Microsoft, Windows, 和Windows logo是微软公司在美国或其它一些国家的商标。
Java和所有基于Java的商标和logo都是Sun公司在美国和其它国家注册的商标。
UNIX是Open Group(开放组织)在美国和其它国家的商标。
其它公司,产品和服务的名可能是其它公司的商标或服务标志。
vii Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework
译 廖永为 武汉纺织大学
2010.10-2010.11
研究GEF和EMF也有一年多的时间了,最近整理一些资料,突发奇想地想翻译几本
书作为记念。所以就从这一年的学习当中选了一些资料来进行系统的翻译,便于以后的
学习者能尽快上手掌握GEF和EMF。
之前的作品请看:《RCP Tutorial》(for eclipse3.6)。
经过一个多月的翻译,这本书总算是翻译完了。但其中还是有很多错误或翻译不够
深刻的地方有待修正。由于时间紧迫,所以现在把翻译的草稿先发在网上,以后我想再
花点时间做些修改。敬请谅解!也请各位朋友发E-mail:weijie0018@163.com指出其不确
之处。
这本书是介绍GEF的开山之作,虽然有些过时,但毕竟是开山之作,我想翻译过来
还是有点价值的。如想深入学习EMF,请看《Eclipse Modeling Framework》(第二版)。
一直想写个序言,但实在是言不由辞,拖一个多月才写了点。在此要特别感谢我周围
的同学和朋友们对我翻译工作的支持,尤其是我的女朋友,在此特表感谢!
译者序
2010年12月21日 星期二
廖永为