操作集

标识符:org.eclipse.ui.actionSets

描述:此扩展点用来将菜单、菜单项和工具栏按钮添加到工作台窗口中的公共区域。将这些添加项统称为操作集并按用户首选项依次出现在工作台窗口中。

配置标记:

   <!ELEMENT actionSet (menu)* (action)* (description?)>
   <!ATTLIST actionSet
      id        CDATA #REQUIRED
      label     CDATA #REQUIRED
      visible   (true | false) #IMPLIED
    >
    <!ELEMENT description (#PCDATA)>

   <!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
          pulldown          (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.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="&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>
            </actionSet>
        </extension>

    在上面的示例中,指定的操作(名为“My Actions”)在每一个透视图内最初是可视的。它将仅支持单个选择(enablesFor 属性)。另外,选择中的对象还必须实现指定的接口(IFile)且必须是 Java 文件。

    API 实现:class 属性的值必须是实现 org.eclipse.ui.IWorkbenchWindowActionDelegateorg.eclipse.ui.IWorkbenchWindowPulldownDelegate 的类的全限定名。后者应在 pulldown 为 true 的情况下实现。尽可能迟地装入此类以避免在真正需要整个插件之前就装入该插件。

    提供的实现:插件可使用此扩展点来添加新的顶级菜单(例如:调试)。插件还可定义允许其他插件将其操作添加到组中的命名组。

    顶级菜单是通过使用 path 属性的下列值来创建的:

    省略 path 属性会导致将新菜单添加到 additions 菜单栏组中。

    工作台窗口中的缺省组是在 IWorkbenchActionConstants 接口中定义的。这些常量可在用于动态添加的代码中使用。还可将这些值复制到 XML 文件中以与现有的工作台菜单和工具栏进行精细的集成。

    工作台窗口内的各种菜单和工具栏项是以算法定义的。在这些情况下,必须使用独立的机制来扩展窗口。例如,添加新的工作台视图将导致新的菜单项出现在“透视图”菜单中。还会自动将“导入”、“导出”和“新向导”扩展添加到窗口中。
     

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