视图菜单、工具栏与操作

标识符:org.eclipse.ui.viewActions

描述:此扩展点用来为其他插件注册的视图将操作添加到菜单和工具栏中。每个视图具有通常通过单击右上区域激活的本地下拉菜单。其他插件可向此菜单添加子菜单和操作。插件还可将操作添加到视图工具栏。视图所有者首先有机会填充这些区域。追加了其他插件的可选附加项。

配置标记:

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

  • ID — 可用来引用此添加项的唯一标识符
  • targetID — 在其中进行添加的视图的唯一标识符(如在注册表中所指定的那样)
  •    <!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.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="&amp;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 中定义工作台窗口的操作和主组。

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