快速业务通道

在Eclipse中创建新的重构功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
ui,   org.eclipse.core.runtime,   org.eclipse.jface.text,   org.eclipse.ltk.core.refactoring,   org.eclipse.ltk.ui.refactoring,   org.eclipse.jdt,   org.eclipse.jdt.core Eclipse-AutoStart: true

在Plug-in Manifest编辑器中打开插件清单文件plugin.xml,可以看到,这 个插件扩展了org.eclipse.ui.actionSets扩展点,这是一个基本的Eclipse工作 台的扩展点,通过扩展它,插件可以很简单得对Eclipse的菜单、工具条进行扩 展。这个plugin.xml 是"Hello,World"插件模板的清单文件,我们把它改成适合 这个工程的文件。清单如下:

清单 4

<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin>    <extension       point="org.eclipse.ui.actionSets">     <actionSet        label="Annotation Action Set"        visible="true"        id="manage.annotation.actionSet">             <menu          label="%Refactoring.menu.label"          path="source"          id="org.eclipse.jdt.ui.refactoring.menu">        <separator name="reorgGroup"/>       </menu>       <action          class="manage.annotation.actions.AnnotationManageAction"          icon="icons/sample.gif"          id="manage.annotation.actions.AnnotationManageAction"          label="%Annotation.manage"          menubarPath="org.eclipse.jdt.ui.refactoring.menu/reorgGroup"          toolbarPath="reorgGroup"          tooltip="Manage Annotation in Java  Project"/>     </actionSet>    </extension> </plugin>

在Eclipse中创建新的重构功能(4)

时间:2010-12-02 IBM 志甘 春郭迎 林刘岳

该清单文件表明,在Refactor菜单中添加了一个新菜单项"Annotation Manage",并在工具条上相应添加了一个按钮。点击菜单项或者按钮的事件由 类"manage.annotation.actions.AnnotationManageAction"处理。

最后需要修改的就是manage.annotation.actions.AnnotationManageAction 类。它继承了 org.eclipse.ui.IWorkbenchWindowActionDelegate接口,该接口 用于处理各种通过扩展点添加的操作。当菜单项或者按钮被点击时,这个类就被 Eclipse工作台装载进来,处理转发过来的请求以及接下来的操作。

AnnotationManageAction 被创建后,一旦用户的选择部分有所改变,接口的 selectionChanged函数就会被触发,告知用户所选择的部分,可以在这个函数中 根据用户的选择相应的修改操作的可用性或者其他显示属性。例如在本文的工程 中,我们希望只有当用户选择了一个Java模型元素时才能使用这个操作,那么就 需要在 selectionChanged中添加如下的代码:

清单 5

public void selectionChanged(IAction action,  ISelection selection) {   if (selection.isEmpty())    select = null;   else if (selection instanceof IStructuredSelection) {    IStructuredSelection strut = ((IStructuredSelection)  selection);    if (strut.size() != 1)    select = null;    if (strut.getFi

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