BaNg

Just Do It!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  33 Posts :: -1 Stories :: 178 Comments :: 0 Trackbacks
GMF的快速开发体大部分体现在它的智能代码生成,即model to model 之后在再引入可编程的模板语言Xpand生成代码。Xpand是oaw基于Antlr开发的一个DSL语言,GMF对它进行了适当的简化与封装,但语法,生成器并没有改变。

公式:

GMFGEN model+Xpand template+Code Generator->Graphical Editing Plugin

其中,gmfgen可以定制,xpand template也可以定制,code generator如果修改一下Antlr定义还是可以定制,只不过高阶一点。

gmfgen是一个ecore模型,这里不描述,而code generator比较复杂,略。

使用动态模板省事步骤:

  1. 打开Plug-ins View,将org.eclipse.gmf.codegen导出为source project,将其templates目录拷贝到某个gmf项目中,假设这个项目名称为a.b.c。
  2. 通过gmfgraph+gmftool+gmfmap生成gmfgen模型,修改类GenEditorGenerator的dynamicTemplates属性为true,然后设置Template Directory为/a.b.c/templates。
  3. 视自己的需要修改xpt文件,再次调用generate diagram code之后,改过的模板将会被调用。
FAQ:

1 保护区域Protect Region
某些方法可能有需要自定义,为避免Xpand覆盖,使用PR来保护,其中CSTART为保护区开始标识符,CEND为结束符,ID的作用主要是用来被ProtectRegionResolver扫描使用的,在一个生成文件中,ID就如同EMF XMI的ID一样,是唯一的。





posted on 2008-12-08 13:54 Always BaNg. 阅读(975) 评论(0)  编辑  收藏 所属分类: JavaEclipse

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-12-10 15:54 编辑过