GMF的Logic照猫画虎之二:使用emf生成模型代码
2011-11-15 16:36
537 查看
在分析一中,我们在paletteFactory中添加了自己的控件,但是仍无法在画布上显示出控件
这是因为我们仍没有定义该控件的模型
我们在GEF中定义控件模型往往需要自己写代码,因此如果碰到控件的个数比较多的话,这将是一个较大的工作量。
既然这里是GMF,那么我们就可以省略咯,通过emf,让gmf自己生成模型code好了。
Logic的模型如图所示,在之前的GMF Tutorial中,我们可以根据UML图生成相应的模型代码,那么这里,无非是重复一遍而已咯
那么,让我们来回顾一下这个过程好了:
首先是,创建一个空的EMF工程:File -> new -> Other -> Eclipse Modeling Framework -〉Empty EMF Project
第二步是,在创建好的EMF工程画自己的UML图,选择model文件夹,右键new -> Other -> Eclipse Modeling Framework -> Ecore Diagram,这会生成两个文件:Test.ecore,Test.ecorediag
我们可以在Test.ecorediag中画自己的UML图(上图所示),而Test.ecore会根据Test.ecorediag实时更新自己的树。我们这里添加了一个Test接口,继承于Element接口,作为实验。
第三步是,选择Test.ecore,右键 new -> Other -> Eclipse Modeling Framework -〉EMF Generator Model, 一路next,然后导入test.ecore,finish,生成test.genmodel,选择Semantic,在属性列表中选择Base Package,命名为com.eclipse.gmf.diagram,右键选择generate model code,而后会自动生成自己的model代码
接着,我们继续生成edit代码和editor代码,选择editor工程运行后,我们已经可以在wizard中看到了我们新生成的向导工程。
当我们模型建立后,我们就要考虑如何在图形编辑器中创建和操作这些元素。
这是因为我们仍没有定义该控件的模型
我们在GEF中定义控件模型往往需要自己写代码,因此如果碰到控件的个数比较多的话,这将是一个较大的工作量。
既然这里是GMF,那么我们就可以省略咯,通过emf,让gmf自己生成模型code好了。
Logic的模型如图所示,在之前的GMF Tutorial中,我们可以根据UML图生成相应的模型代码,那么这里,无非是重复一遍而已咯
那么,让我们来回顾一下这个过程好了:
首先是,创建一个空的EMF工程:File -> new -> Other -> Eclipse Modeling Framework -〉Empty EMF Project
第二步是,在创建好的EMF工程画自己的UML图,选择model文件夹,右键new -> Other -> Eclipse Modeling Framework -> Ecore Diagram,这会生成两个文件:Test.ecore,Test.ecorediag
我们可以在Test.ecorediag中画自己的UML图(上图所示),而Test.ecore会根据Test.ecorediag实时更新自己的树。我们这里添加了一个Test接口,继承于Element接口,作为实验。
第三步是,选择Test.ecore,右键 new -> Other -> Eclipse Modeling Framework -〉EMF Generator Model, 一路next,然后导入test.ecore,finish,生成test.genmodel,选择Semantic,在属性列表中选择Base Package,命名为com.eclipse.gmf.diagram,右键选择generate model code,而后会自动生成自己的model代码
接着,我们继续生成edit代码和editor代码,选择editor工程运行后,我们已经可以在wizard中看到了我们新生成的向导工程。
当我们模型建立后,我们就要考虑如何在图形编辑器中创建和操作这些元素。
相关文章推荐
- 使用EMF建立模型并生成Java代码
- 使用“代码文档对象模型”(CodeDOM) 生成源代码和可执行文件。
- 【iPhone代码片段之二】使用类别扩展UIColor,支持生成随机颜色
- 使用PowerDesigner的物理模型生成不同的数据库和转换成OOM模型生成CS实体类代码
- php生成缩略图示例代码分享(使用gd库实现)
- 使用Eclipse的Generator MyBatis/iBatis Artifacts插件自动生成代码,与spring集成
- 数据库逆向框架代码生成工具:MyBatis Generator的使用
- 使用生成的界面逻辑代码(源)
- 使用 Velocity 模板引擎快速生成代码
- EF Code First:使用T4模板生成相似代码
- 使用axis1.X根据WSDL地址生成客户端调用代码
- 使用java代码启动generator生成相关的文件
- [转]使用新的代码和标记模型创建真实的应用程序(Windows Vista)
- 代码生成工具dgen使用说明
- 在Visual Studio中使用T4 Templates 生成代码
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(三)Matlab中滤波器的HDL代码生成
- 在 Jboss中如何使用 WSDL 来生成客户端代码 JAVA
- [设计模式]在CodeDom代码生成中使用Decorator模式实现类型创建
- 黄聪:如何使用CodeSmith批量生成代码(原创系列教程)
- asp.net(c#) 使用Rex正则来生成字符串数组的代码