描述:此扩展点用来为其他插件注册的视图将操作添加到菜单和工具栏中。每个视图具有通常通过单击右上区域激活的本地下拉菜单。其他插件可向此菜单添加子菜单和操作。插件还可将操作添加到视图工具栏。视图所有者首先有机会填充这些区域。追加了其他插件的可选附加项。
配置标记:
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>ID — 可用来引用此添加项的唯一标识符 targetID — 在其中进行添加的视图的唯一标识符(如在注册表中所指定的那样)
<!ELEMENT action (selection)*>name — 可在以后作为操作路径中的最后一个标记引用的分隔符的名称。因此,分隔符充当可将操作添加到其中的命名组。
操作和菜单标号可包含使用以下规则编码助记符和加速键的特殊字符:
下面是视图操作扩展点的一个示例(注意子元素以及使用属性的方式):
<extension point="org.eclipse.ui.viewActions">
<viewContribution
id="com.xyz.xyzViewC1"
targetID="org.eclipse.ui.views.navigator.ResourceNavigator">
<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>
</viewContribution>
</extension>
在上面的示例中,指定的操作将仅支持单个选择(enablesFor 属性)。另外,此选择中的每个对象还必须实现指定的接口(IFile)且必须是 Java 文件。可指定多个 selection 元素,表示“其中之一”。
API 信息:class 属性的值必须是实现 org.eclipse.ui.IViewActionDelegate 的 Java 类的全限定名。尽可能迟地装入此接口以避免在真正需要整个插件之前就装入该插件。它扩展了 org.eclipse.ui.IActionDelegate 并添加允许代理与该代理添加到的视图实例一起初始化的附加方法。
提供的实现:每个视图一般是随下拉菜单和本地工具栏上的许多标准项一起提供的。将其他插件中的附加项追加到标准补码中。为公共接口内的视图发布操作标识符是很有帮助的。例如,将在 org.eclipse.ui.IWorkbenchActionConstants 中定义工作台窗口的操作和主组。