| | | | | | | [文章信息] | | | 作者: | 陶刚编译 | | 时间: | 2005-05-20 | | 出处: | 天极网 | | 责任编辑: | 方舟 | |
| [文章导读] | | | 编写Eclipse插件的方法很简单,你只需要编写一个应用程序,并把它"添加"到Eclipse上 | |
| |
|
| | | |
|
|
|
|
|
关于工具条路径
工具条路径(toolbar path)指出了添加工具条按钮的位置。由于任何人都可以建立工具条,而且有时候一个按钮可以包含子选项,因此我们用分层的标识符列表来访问这个位置。下面是经常用到的工具条列表和它们的路径:
· 文件: org.eclipse.ui.workbench.file 带有一些公共的分组标志(你可以添加按钮的更多的位置):
o "新建"区:new.ext o "保存"区:save.ext o "打印"区:print.ext o "建立"区:build.ext
· 导航: org.eclipse.ui.workbench.navigate
· 载入: org.eclipse.debug.ui.launchActionSet
· 编辑器表示:org.eclipse.ui.edit.text.actionSet.presentation
· 搜索: org.eclipse.search.searchActionSet
· Java元素建立:org.eclipse.jdt.ui.JavaElementCreationActionSet
· 组: Team
· CVS: CVS
如果你提供的工具条ID不带有标志ID,你的按钮就会被添加到紧挨着这个工具条的一个新工具条之上。接着这个新工具条就可以被添加到Eclipse GUI上了。有时候你会看到使用工具条路径"正常的(Normal)"的插件。这是旧的名称转换。在Eclipse 3中这样使用的时候会建立一个叫作"Normal"的新工具条。如果你建立一个新工具条ID,你的工具条会被添加到"文件"工具条后面。
请注意"文件"工具条的"新建"组标志。这是我们添加自己的按钮的地方。由于标志ID是new.ext,完整的路径就是:
| org.eclipse.ui.workbench.file/new.ext | 3.编写操作委托类
最后一步是编写少量的用于实现操作的Java。这个类称为操作委托。
package invokatron.wizard;
public class RunWizardAction extends Action implements IWorkbenchWindowActionDelegate { /** 操作被建立的时候调用*/ public void init(IWorkbenchWindow window) {}
/** 操作被删除的时候调用*/ public void dispose() {}
/** 操作被执行的时候调用 */ public void run(IAction action) { InvokatronWizard wizard= new InvokatronWizard(); Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); WizardDialog dialog= new WizardDialog(shell, wizard); dialog.create(); dialog.open(); }
/** 编辑器中的对象被选中或取消选择的时候调用*/ public void selectionChanged(IAction action, ISelection selection) {} } | 添加菜单项
你也许猜到了添加菜单项与添加工具条按钮的过程几乎相同。你也必须声明一个扩展(同种类型的)、用特定的标记(相同的标记)来扩充它,并编写操作类(相同的类)。其主要的不同点是扩展的声明。下面是菜单项的扩展XML代码(没有相应的工具条按钮):
<extension id="NewInvokatronAction" name="New Invokatron Document Action" point="org.eclipse.ui.actionSets"> <actionSet id="invokatron.actionSet" label="Invokatron Actions" visible="true"> <action id="invokatron.wizard.RunWizardAction" label="New Invokatron" menubarPath="file/new.ext" icon="icons/InvokatronIcon16.gif" tooltip="Starts the New Invokatron Document Wizard." class="invokatron.wizard.RunWizardAction"> </action> </actionSet> </extension> | 标签(label)属性包含了显示在菜单项上的文本内容。键盘快捷键用"&"符号表示,在XML中是&。下面是一个组合了菜单项和工具条按钮的例子:
<extension id="NewInvokatronAction" name="New Invokatron Document Action" point="org.eclipse.ui.actionSets"> <actionSet id="invokatron.actionSet" label="Invokatron Actions" visible="true"> <action id="invokatron.wizard.RunWizardAction" label="New Invokatron" menubarPath="file/new.ext" toolbarPath="org.eclipse.ui.workbench.file/new.ext" icon="icons/invokatronPicture.gif" tooltip="Starts the New Invokatron Document Wizard." class="invokatron.wizard.RunWizardAction"> </action> </actionSet> </extension> | 菜单与工具条只有稍微的不同。工具条只有一个"层次",而菜单有完整的层次。这也是用操作来声明菜单这种方法可行的原因。菜单都列举在<actionSet>标记之中,在<action>标记之上。它们的语法如下:
<menu id="unique.ID" <!-- New menu at the top-level. The menubarPath for actions inside this menu is: Special --> path="Special" label="This is a parent menu item."> <!-- Optional, the menubarPath for actions after this separator is: Special/BelowBar --> <separator name="BelowBar"> </menu> |
|
|
|
|
|
|
|
|