動作集

識別碼: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 屬性,結果會將新功能表新增到其它功能表列群組中。

    工作台視窗中的預設群組定義在 IWorkbenchActionConstants 介面中。這些常數可用在動態提供的程式碼中。 這個值也可以複製到 XML 檔中,以更精密整合到現有工作台功能表及工具列中。

    工作台視窗內的各種功能表和工具列項目都是以演算法定義。在這些情況下,必須利用個別機制來延伸視窗。 比方說,新增新的工作台檢視畫面會在「視景」功能表中出現新的功能表項目。 「匯入」、「匯出」和「新建精靈」等延伸項目也會自動新增到視窗中。
     

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