描述:此扩展点用来将菜单、菜单项和工具栏按钮添加到工作台窗口中的公共区域。将这些添加项统称为操作集并按用户首选项依次出现在工作台窗口中。
配置标记:
<!ELEMENT actionSet (menu)* (action)* (description?)>
<!ATTLIST actionSet
id CDATA
#REQUIRED
label CDATA #REQUIRED
visible (true
| false) #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ELEMENT action (selection)*>name — 可在以后作为操作路径中的最后一个标记引用的分隔符的名称。因此,分隔符充当可将操作和子菜单添加到其中的命名组。
操作扩展的启用标准最初由 enablesFor 和 selection 定义。然而,一旦将操作代理实例化,它就有可能直接控制其 selectionChanged 方法内的操作启用状态。
操作和菜单标号可包含使用以下规则编码助记符和加速键的特殊字符:
下面是操作集的一个示例(注意子元素以及使用属性的方式):
<extension point = "org.eclipse.ui.actionSets">
<actionSet id="com.xyz.actionSet"
label="My Actions"
visible="true">
<menu id="com.xyz.xyzMenu"
label="XYZ Menu"
path="additions">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ"
enablesFor="1">
<selection class="org.eclipse.core.resources.IFile" name="*.java"/>
</action>
</actionSet>
</extension>
在上面的示例中,指定的操作(名为“My Actions”)在每一个透视图内最初是可视的。它将仅支持单个选择(enablesFor 属性)。另外,选择中的对象还必须实现指定的接口(IFile)且必须是 Java 文件。
API 实现:class 属性的值必须是实现 org.eclipse.ui.IWorkbenchWindowActionDelegate 或 org.eclipse.ui.IWorkbenchWindowPulldownDelegate 的类的全限定名。后者应在 pulldown 为 true 的情况下实现。尽可能迟地装入此类以避免在真正需要整个插件之前就装入该插件。
提供的实现:插件可使用此扩展点来添加新的顶级菜单(例如:调试)。插件还可定义允许其他插件将其操作添加到组中的命名组。
顶级菜单是通过使用 path 属性的下列值来创建的:
工作台窗口中的缺省组是在 IWorkbenchActionConstants 接口中定义的。这些常量可在用于动态添加的代码中使用。还可将这些值复制到 XML 文件中以与现有的工作台菜单和工具栏进行精细的集成。
工作台窗口内的各种菜单和工具栏项是以算法定义的。在这些情况下,必须使用独立的机制来扩展窗口。例如,添加新的工作台视图将导致新的菜单项出现在“透视图”菜单中。还会自动将“导入”、“导出”和“新向导”扩展添加到窗口中。