描述:此扩展点用来将操作添加到其他插件注册的编辑器的菜单和工具栏中。
编辑器的初始添加项集是由另一扩展点(org.eclipse.ui.editors)定义的。同一编辑器类型的所有实例创建和共享一组操作。调用这些操作时,它们对活动编辑器起作用。此扩展点遵循同一模式。同一编辑器类型的所有实例创建和共享每个操作扩展。需要操作类来实现 org.eclipse.ui.IEditorActionDelegate。将通过调用 IEditorActionDelegate#setActiveEditor 来将活动编辑器传送到代理。
配置标记:
<!ELEMENT editorContribution (menu | action)*>
<!ATTLIST editorContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id — 可用来引用此添加项的唯一标识符 editorID — 作为此添加项目标的先前注册的编辑器的唯一标识符
<!ELEMENT action (selection)*>name — 可在以后作为操作路径中的最后一个标记引用的分隔符的名称。因此,分隔符充当可将操作添加到其中的命名组。
操作和菜单标号可包含使用以下规则编码助记符和加速键的特殊字符:
下面是编辑器操作扩展点的一个示例:
<extension point="org.eclipse.ui.editorActions">
<editorContribution
id="com.xyz.xyzContribution"
targetID="com.ibm.XMLEditor">
<menu id="com.xyz.xyzMenu"
label="&XYZ Menu">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
state="true"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ">
</action>
</editorContribution>
</extension>
在上面的示例中,指定的操作将作为菜单中的复选框项和工具栏中的切换按钮出现。
API 信息:class 属性的值必须是实现 org.eclipse.ui.IEditorActionDelegate 的 Java 类的全限定名。尽可能迟地装入此接口以避免在真正需要整个插件之前就装入该插件。每次激活指定类型的编辑器时, 都将调用 setActiveEditor 方法。将为指定编辑器类型的所有实例仅创建一组操作和菜单, 而不必理会当前在工作台中打开了多少个编辑器实例。
此扩展点可用来将操作添加到目标编辑器先前创建的菜单中。另外,可将菜单和操作添加到工作台窗口。工作台窗口内的操作和主组的标识符是在 org.eclipse.ui.IWorkbenchActionConstants 中定义的。这些应用作添加新操作的参考点。顶级菜单是使用 path 属性的下列值创建的:
提供的实现:工作台提供了内置“缺省文本编辑器”。插件可向此缺省编辑器或其他插件提供的编辑器作添加。