编辑器菜单、工具栏和操作

标识符:org.eclipse.ui.editorActions

描述:此扩展点用来将操作添加到其他插件注册的编辑器的菜单和工具栏中。

编辑器的初始添加项集是由另一扩展点(org.eclipse.ui.editors)定义的。同一编辑器类型的所有实例创建和共享一组操作。调用这些操作时,它们对活动编辑器起作用。此扩展点遵循同一模式。同一编辑器类型的所有实例创建和共享每个操作扩展。需要操作类来实现 org.eclipse.ui.IEditorActionDelegate。将通过调用 IEditorActionDelegate#setActiveEditor 来将活动编辑器传送到代理。

配置标记:

   <!ELEMENT editorContribution (menu | action)*>
   <!ATTLIST editorContribution
      id         CDATA #REQUIRED
      targetID   CDATA #REQUIRED
   >

  • id — 可用来引用此添加项的唯一标识符
  • editorID — 作为此添加项目标的先前注册的编辑器的唯一标识符
  •    <!ELEMENT menu (separator)+>
       <!ATTLIST menu
          id         CDATA #REQUIRED
          label      CDATA #REQUIRED
          path       CDATA #IMPLIED
       >    <!ELEMENT separator EMPTY>
       <!ATTLIST separator
          name       CDATA #REQUIRED
       >
  • name — 可在以后作为操作路径中的最后一个标记引用的分隔符的名称。因此,分隔符充当可将操作添加到其中的命名组。
  •    <!ELEMENT action (selection)*>
       <!ATTLIST action
          id                NMTOKEN #REQUIRED
          label             CDATA #REQUIRED
          menubarPath       CDATA #IMPLIED
          toolbarPath       CDATA #IMPLIED
          icon              CDATA #IMPLIED
          tooltip           CDATA #IMPLIED
          helpContextId     CDATA #IMPLIED
          state             (true | false) #IMPLIED
          class             CDATA #REQUIRED
          enablesFor        CDATA #IMPLIED
       >    <!ELEMENT selection EMPTY>
       <!ATTLIST selection
          class             CDATA #REQUIRED
          name              CDATA #IMPLIED
       > 操作扩展的启用标准最初由 enablesForselection 定义。然而,一旦将操作代理实例化,它就有可能直接控制其 selectionChanged 方法内的操作启用状态。

    操作和菜单标号可包含使用以下规则编码助记符和加速键的特殊字符:

    1. 在转换的文本中,是在所选字符前面加和号(“&”)字符来指定助记符的。由于 XML 字符串中不允许有和号,所以使用 &amp; 字符实体。
    2. 可选加速键是使用 @ 后跟修饰符系列,最后跟一个加速键字符(例如: &amp;Save@Ctrl+S)来在名称字符串的末尾指定的。可将“+”号用作定界符来将修饰符链接起来(如 @Ctrl+Shift+S)。
    示例:

    下面是编辑器操作扩展点的一个示例:

       <extension point="org.eclipse.ui.editorActions">
          <editorContribution
             id="com.xyz.xyzContribution"
             targetID="com.ibm.XMLEditor">
             <menu id="com.xyz.xyzMenu" label="&amp;XYZ Menu">
                <separator name="group1"/>
             </menu>
             <action id="com.xyz.runXYZ"
                  label="&amp;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 属性的下列值创建的:

    仅当相关联的编辑器处于活动状态时,添加到这些路径中的操作和菜单才会显示出来。关闭编辑器时,将会除去菜单和操作。

    提供的实现:工作台提供了内置“缺省文本编辑器”。插件可向此缺省编辑器或其他插件提供的编辑器作添加。

    Copyright IBM Corp. 2000, 2001.  All Rights Reserved.