使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码 - 编程入门网
Generate Model将在当前项目中创 建该 EMF 模型的 Java 实现代码。其中会包含下列内容:
com.ibm.example.forum -- 创建该 Java 类的接口和工厂。 com.ibm.example.forum.impl -- com.ibm.example.forum 中定义的接口的具体 实现。 com.ibm.example.forum.util -- AdapterFactory。 Generate Editor Code将创建 com.ibm.example.forum.edit 项目。其中仅仅包含一个包, com.ibm.example.forum.provider ,用于控制每一个模型对象出现在编辑器中的方式。 Generate Editor Code将在 com.ibm.example.forum.editor 项目中创建一个插件编辑器 示例,其中包含了 com.ibm.example.forum.presentation。这些类提供了一系列简单的 JFace 编辑器,可以与您的模型进行交互。 为了测试生成的插件,请依次进入 Run > Run... > Run Time Workbench > New。输入一个描述性的名称,然后在 plug-ins 选项卡中,选择 launch with all workspace and enabled external plug- ins。再在 Common 页下,单击 Display in favorites menu > Run和 Launch in background。最后保存设置并运行。 这时将出现一个新的 Eclipse 工作台,您可 以在 Help > About Eclipse Platform > Plug-in Details下面验证您的插件是否 可用,如图 4 所示。 图 4. Forum 的插件详细信息 使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码(6)时间:2011-03-26 IBM Adrian Powell为了测试生成的插件,您可以创建一个新的 Simple 项目,名为“Forum Demo”,然后依次进入 New > Other... > Example EMF Model Creation Wizards > Forum Model。给文件取名叫做 sample.forum,然后选择 Forum 作为 Model Object。这时会打开一个窗口,您可以在这里向根中增加新的模型元素。其中包含 几种视图:Selection、Parent、List、Tree、Table 和 TreeTable。所有这些视图都显 示相同的数据,也和 Outline 视图保持同步。虽然所有视图都会在右键菜单选项中显示 New Sibling/New Child,但是我发现,有些视图在加入兄弟节点或子节点时不能正确响 应。如果您也遇到这种情况,可以使用 TableTree 视图,或是在 Outline 视图中创建新 的节点。图 5 展示了所生成的插件编辑器。 图 5. 所生成的插件编辑器 定制 生成的代码 生成的代码都很不错,但是这只是真正应用程序的起点。为了满足我 们的需要,我们必须对其进行调整和定制。我们可以改变所生成的模型类的实现,也可以 对编辑器进行扩展和定制。好在 EMF 没有让我们失望,我们可以按照自己的想法做任何 定制,当重新生成代码时也不会丢掉这些内容。我们需要做的全部工作就是删除 @generated JavaDoc 标签,EMF 的 jmerge 将保证这些方法、属性或类不被打扰。 为着重说明您能对代码进行哪些修改,让我们来看一个简单的例子。在所生成编 辑器的 Table 视图中,两个字段都显示出相同的的值。这一点并不是完全没有用处。为 了改善一下,我们可以修改第二个字段,让它在选中一个 Topic 的时候显示 Author,然 后增加第三个字段,给出该 Topic 中的帖子数。 第一步,向 Table 视图中额外 增加一个字段。这一步在 com.ibm.example.forum.editor 项目中实现,即 createPages() 方法中的 com.ibm.example.forum.presentation.ForumEditor 。把 @generated 标签删除,这样就能持久保存我们的修改,然后定位到表浏览窗口所在的位 置。按照清单 4 的内容对这段代码进行修改。 清单 4. 修改后的 createPages ()
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |