快速业务通道

扩展Visual Editor的控件和属性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
何生成 Java 代码?即如何生成 IJavaObjectInstance 的实例?还是要回到构造函数上来,通过初始化字符串,传入正确类型的参数,生成相应的构造函数语句,就能够创建出 Visual Editor 可识别的 IJavaObjectInstance 实例,从而转化为代码编辑区中的 Java 代码。本例中解析的代码如下:

清单8:创建 IJavaObjectInstance 实例

private static final String TEXTITEMMODELCLASSPATH =              "developerworks.ve.example.textitem.TextItemModel";    private IJavaInstance createJavaObject(TextItemModel model) {      return BeanUtilities.createJavaObject(TEXTITEMMODELCLASSPATH,                 JavaEditDomainHelper.getResourceSet(editDomain),          getJavaAllocation(model));    }    private JavaAllocation getJavaAllocation(TextItemModel model) {      String initString = "new " + TEXTITEMMODELCLASSPATH +        "(" + "\"" + model.getTitle() + "\", " + model.getMaxLength() + ")";      return BeanPropertyDescriptorAdapter.createAllocation(initString, editDomain);    }

扩展控件至 Palette

到目前为止,围绕该控件的编码工作已经完成:拥有了定制化的控件,描述该控件的 BeanInfo,以及对该控件进行编辑的编辑器。下一步要做的就是将该控件集成到 Visual Editor 的编辑器中,供用户使用了。

如何扩展该控件至 Palette?Visual Editor 的 Palette 由 EMF 的模型来描述,EMF 可以序列化为 XMI,而插件可以定制它们自己的XMI文件,描述控件的种类,归属于哪些控件组,以及图标和实现类等信息。对于本例中的 TextItem 来讲,编写了 palette.xmi 文件来描述该控件,使其被 Palette 所识别,对应于 TextItem,是<children></children>中的内容,分别描述了该控件由哪种图标表示,实现类是哪个,在 Palette 中显示的名称,以及创建后的实例,默认采用的名称。

清单 9:Palette.xmi 文件

<?xml version="1.0" encoding="UTF-8"?> <org.eclipse.ve.internal.cde.palette:Drawer xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.ve.internal.cde.palette=      "http:///org/eclipse/ve/internal/cde/palette.ecore" xmlns:org.eclipse.ve.internal.cde.utility=       "http:///org/eclipse/ve/internal/cde/utility.ecore">   <entryLabel xsi:type="org.eclipse.ve.internal.cde.utility:ConstantString"        string="Custom Widgets"/>   <children xsi:type="org.eclipse.ve.internal.cde.palette:EMFCreationToolEntry"    icon16Name="platform:/plugin/developerworks.ve.example.textitem/icons/sample.gif"    creationClassURI="java:/developerworks.ve.example.textitem#TextItem">    <entryLabel xsi:type="org.eclipse.ve.internal.cde.utility:ConstantString"        string="TextItem"/>    <keyedValues xsi:type="ecore:EStringToStringMapEntry"     key="org.eclipse.ve.internal.cde.core.nameincomposition&quo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号