快速业务通道

扩展Eclipse辅助和规范开发流程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
nt="org.eclipse.ui.newWizards">     <category        name="北京能博译码J2EE开发包"        id="net.sf.yangtze.pdpf"/>     <wizard        class="net.sf.yangtze.pdpf.wizards.NewSubjectWizard"        icon="icons/sample.gif"        category="net.sf.yangtze.pdpf"        name="开发新的分析主题"        id="net.sf.yangtze.pdpf.wizards.NewSubjectWizard"/>    </extension> </plugin>

实现它的类 net.sf.yangtze.pdpf.wizards.NewSubjectWizard 继承自 org.eclipse.jface.wizard.Wizard 类,它有几个重要的方法:

addPage - 向 Wizard 添加页面,就是那些可以通过 next>,<back 浏览的页面 。

FinishPage - 当用户点击 finish 的时候程序完成的工作。在我们的插件中就是完成 自动生成 jsp,Action 的工作,把这些代码放在FinishPage 方法即可。

我们有两个 Page 一个用来输入和测试 SQL 语句,一个用来定制 Action 和可以输入 的参数。

2.然后是如何从 JDT 扩展。

这部分现成资料不多,所以要稍微探讨一下。经常使用 Eclipse 开发 java 的程序员 应该非常熟悉 JDT,实际上 Eclipse 平台可以用来开发任何语言的,它并不是一个 Java IDE,Java IDE 的功能是通过 JDT 插件完成的,在 Eclipse 的世界中一切都是插件。

在开发 Java 的时候,有许多的 Wizard 来辅助我们完成编码工作,如新建类,接口 ,如下图:

扩展Eclipse辅助和规范开发流程(6)

时间:2011-03-29 IBM 皮振华

而且它里面有很多辅助工作,如你点击超类的时候,有一个帮助你输入超类名称的窗 口会弹出来,在里面你并不需要输入类的完整的名称,它会自动提示。接口和包都有类似 的辅助输入的功能。

我使用这些功能觉得很方便和习惯,所以我希望我的插件在创建 Action 的时候也能 有类似的功能,而我不想自己再重新造个轮子(而且这个工作可不轻松),所以我就得从 JDT 中扩展,而不使用标准的 org.eclipse.jface.wizard.Wizard 类。

在传统的 wizard 中我们使用 org.eclipse.jface.wizard.Wizard 和 org.eclipse.jface.wizard.WizardPage 类,但如果你希望继承 JDT 的功能必须对应使 用 org.eclipse.jdt.internal.ui.wizards.NewElementWizard 和 org.eclipse.jdt.ui.wizards.NewTypeWizardPage 类。

NewElementWizard 也是继承自 Wizard,它只是做了一些检查是不是 Java 项目等工 作,Eclipse 中新建类,和接口 Wizard 都是从这个类基础发展而来的。内容丰富的是 org.eclipse.jdt.ui.wizards.NewTypeWizardPage 类,它包含了浏览项目,浏览超类, 接口等功能,而且提供了丰富的方法来构建你的 Java 类型,例如添加方法,添加 import 等,更多内容可以参考自带的 API doc 文件,一幕了然。

可以看看我上面插件中的例子:

public void createControl(Composite parent) {      initializeDialogUnits(parent);      Composite composite = new Composite(parent, 0);      int nColumns = 4;      GridLayout layout = new GridLayout();      layout.numColumns = nColumns;      composite.setLayout(layout);   //上图中的 source folder 控件      createContainerControls(composite, nColumns);   //Package      createPackageControls(composite, nColumns);   //一个分割线      createSeparator(composite, nColumns);      createTypeNameControls(composite, nColumns);    

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