快速业务通道

使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
; selfColumn.setResizable(true); TableColumn numberColumn = new TableColumn(table, SWT.NONE); layout.addColumnData(new ColumnWeightData(4, 100, true)); numberColumn.setText("Number of Posts"); numberColumn.setResizable (true); tableViewer.setColumnProperties(new String [] {"a", "b",  "c"});

使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码(7)

时间:2011-03-26 IBM Adrian Powell

这样就额外增加了一个字段,但是现在所有的三个字段都显示相 同的数据。为了定制每一个字段中的数据,我们需要提供一些 ITableItemLabelProvider 的实现。打开 com.ibm.example.forum.provider.TopicItemProvider ,在实现列表中加 入 ITableItemLabelProvider 。我们需要增加两个方法, getColumnText(Object, int) 和 getColumnImage(Object, int) ,如清单 5 所示。

清单 5. 加入 TopicItemProvider

public String getColumnText(Object obj, int  index) {  if( index == 0 ){  return getText(obj);  }  else if( index == 1 ) {  return ((Topic)obj).getCreator ().getNickname();  } else if( index == 2 ) {  return " +  ((Topic)obj).getPosts().size();  }  return "unknown"; } public Object getColumnImage(Object obj, int index) {  return  getImage( obj ); }

最后,我们需要注册这个提供程序。实现方 法是编辑 com.ibm.example.forum.provider.ForumItemProviderAdapterFactory 的构造 函数,向支持的类型中增加 ITableItemLabelProvider ,如清单 6 所示。

清单 6. ForumItemProviderFactory 构造函数

public  ForumItemProviderAdapterFactory() {     supportedTypes.add (ITableItemLabelProvider.class);  supportedTypes.add (IStructuredItemContentProvider.class);  supportedTypes.add (ITreeItemContentProvider.class);  supportedTypes.add (IItemPropertySource.class);  supportedTypes.add (IEditingDomainItemProvider.class);  supportedTypes.add (IItemLabelProvider.class); }

现在我们再运行这个插件,打开表 视图,就能看到图 6。请注意,没有实现的 ITableItemLabelProvider 元素将在所有的 字段中显示相同的文本。

图 6. 修改后的 Table 编辑器

使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码(8)

时间:2011-03-26 IBM Adrian Powell

在 Java 中操纵模型

生成的模型代码看起来就像是 Java 代码中增加了 一些有用的东西。系统还提供了一种灵活的定制反射 API,对工具很有用。您也许注意到 了,这就是 eGet() 和 eSet() 两个方法。在大多数情况下,我们并不需要关心它,所以 我们还是看看我们感兴趣的东西:如何创建、保存和加载模型。让我们从头开始:加载 EMF 模型。

清单 7. 加载 Forum

// Register the XMI resource  factory for the .forummodel extension Resource.Factory.Registry reg  = Resource.Factory.Registry.INSTANCE; Map m =  reg.getExtensionToFactoryMap(); m.put("forummodel", new  XMIResourceFactoryImpl()); ResourceSet resSet=new ResourceSetImpl(); Resource res = resSet.getResource(URI.createURI ("model/forum.forummodel"),true); Forum forum = (Forum) res.getContents().get(0);

清单 7 展示了如何给文件关联一个符合 XMI 格式的扩展名“forummodel”,然后用 EMF 的 ResourceSet 解

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号