快速业务通道

创建自己的Eclipse插件模板-通过定制现有的模板满足特定需求 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
会发现在定制模板方面的一个问题。因为每个****图的视图数量是可变的,所以 在视图数量确定之前,不可能生成相关资源并复制到目标项目中。

为了解决此问题,我们来考虑 两个解决方案。一种常用的方法是为每个****图类别创建一个模板,一个****图类别中的所有****图包含 相同数量的视图。另一种方法更高效更高级。只为所有****图类别创建一个模板。通过区段控制管理视图 和****图之间的链接。

添加用于****图和视图区段的扩展

在此示例中,把所有资源分为两 个部分。使用****图区段管理****图资源,使用视图区段管理视图资源。如果用户需要没有视图的****图 ,就不会把视图资源复制到目标项目中。同样,如果用户需要包含 9 个视图的****图,那么在****图中 注册 9 个视图,重复生成视图资源并把资源复制到目标项目中。

创建自己的Eclipse插件模板-通过定制现有的模板满足特定需求(3)

时间:2011-11-02 IBM Jie Tang

为了生成这两个区段,需要在 Manifest Editor 的 Extensions 选项卡中添加扩展。

图 1. Extensions 选项卡 — ****图区段

创建自己的Eclipse插件模板-通过定制现有的模板满足特定需求 - 编程入门网

图 2. Extensions 选项卡 — 视图区段

创建自己的Eclipse插件模板-通过定制现有的模板满足特定需求 - 编程入门网

区段实现

图 3 给出模板项目的结构。在此示例中,创建 5 个新文件(SampleWizard.java、 PerspectiveSection.java、ViewSection.java、$perspectiveClassName$.java 和 $viewClassName$.java)。它们构成项目的主要部分。

图 3. 模板项目结构

创建自己的Eclipse插件模板-通过定制现有的模板满足特定需求 - 编程入门网

创建自己的Eclipse插件模板-通过定制现有的模板满足特定需求(4)

时间:2011-11-02 IBM Jie Tang

PerspectiveSection 和 ViewSection 是 OptionTemplateSection 的子类,这个类代表模板向导的一 个区段。它们有三个主要功能:创建模板的 UI、保存从 UI 输入的变量和更新模板模型。表 1 解释区段 类的各个方法。

表 1. 区段类的方法

方法名 功能说明
initializeFields 使用输入参数初始化向导页面上的选项。一些选项可能取决于用户在前面的向导步骤中做出的 选择。
addPages 把与模板相关的页面添加到向导中。
getStringOption 获取选项名。
getSectionId 返回区段 ID。
updateModel 把必需的条目添加到插件模型中。

$perspectiveClassName$.java 和 $viewClassName$.java 是模板文件,它们会自动转换为目标项目 的 Java 源代码文件。此示例中的模板文件非常简单。我们仅仅创建所有视图的列表,然后把这些视图添 加到****图中。

接下来,在向导行为中添加区段控制。SampleWizard 类是 NewPluginTemplateWizard 类的子类,这 个类作为插件的向导模板。可以通过 SampleWizard 类把指定的区段分配给目标插件项目。 performFinish 方法是从超类继承的。可以使用它在向导中执行特殊的最终处理,包括循环处理模板区段 并依次执行它们,从而为目标项目生成文件。清单 1 显示如何在向导中注册区段和 performFinish 方法 中的主要操作。

清单 1. SampleWizard.java

        //register all related sections in wizard
public ITemplateSection[] createTemplateSections() {
  return new ITemplateSection[] {
    new PerspectiveSection(),
    new ViewSection()
  };
}
public boolean performFinish(final IProject project, IPluginModelBase model,
      IProgressMonitor monitor) {
  ...
  ITemplateSection[] sections = super.getTemplateSection

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