EMF介绍系列(五、定制应用程序界面) - 编程入门网
一个Resource,这个Resource(通过这 个URI)指向保存着模型信息的 XML文件My.shop。对于使用者来说,这个节点显示在这里没 有什么意义,用户看到的根节点应该是.shop文件里保存的Shop对象,见图2的对比。
图2 在大纲视图里隐藏最上层节点 那么该修改哪些代码来实现这个需求呢?我们想到 大纲视图里的内容是从ShopEditor的getAdapter()方法里得到的,通过查看 ShopEditor的 getAdapter()方法发现名为getContentOutlinePage()的方法负责产生大纲模型,在这个方法 里,变量contentOutlineViewer是对大纲视图里的树控件的包装对象,它的输入(Input)是 editingDomain.getResourceSet(),我们要把它的输入改成ResourceSet的第一个Resource, 修改后的代码如下:
你可能会问,那么从Resource怎样得到Shop对象呢?很简单,(Shop) yourResource.getContents().get (0)即可,有兴趣的话你可以试试把大纲视图的输入设为 Shop对象会看到什么。最后说一次不要忘记修改@generated,以后不再提醒了。 三、 移除编辑器里多余的Tab页 EMF生成的Editor为我们提供了六个Tab页,其主要目的是 向我们演示如何以各种方式展示数据(例如在大纲视图里选择一个Category对象,通过 Parent页里可以很容易的看到前面说过的Category->Shop->Resource- >ResourceSet关系),在实际的应用里一般不会用到全部这些页,下面我们就只保留 Table页而移除其他五页,利用大纲和Table页的组合,实现类似Windows资源管理器的界面。 编辑器里的页面在createPages()方法里被添加,它虽然很长但EMF在这个方法里生成了不 少注释,每段代码的作用都很明显,只要把我们不需要的那五段注释掉即可。现在把程序运 行起来,打开一个模型文件,稍微调整一下布局把大纲视图放在编辑器的旁边,如图3所示, 有点资源管理器的样子了吧。 图3 和资源管理器类似的布局 EMF介绍系列(五、定制应用程序界面)(3)时间:2011-04-30 博客园 bjzhanghao但是很遗憾,现在的表格里只有两列,而且两列里显示的内容是相同的。按照资源管理器 的设计,当用户在大纲视图里选择一个对象时,表格中应该显示该对象的子对象详细信息的 列表,现在子对象列表已经有了(表格里每一行就是一个子对象),让我们做一些修改以显 示详细信息。 首先增加一个表格列,还是在ShopEditor的createPages()方法里修改,搜索一下 TableColumn很容易找到应该修改的位置。新的三列标题分别为“Name”、“Children”和“ Description”,其中Children列里显示子对象的数目。
如果现在运 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |