說明:這個延伸點用來新增功能表、功能表項目和工具列按鈕到工作台視窗中的共用區。 這些提供項總稱為動作集,會出現在使用者喜好設定的工作台視窗中。
配置標記:
<!ELEMENT actionSet (menu)* (action)* (description?)>
<!ATTLIST actionSet
id CDATA
#REQUIRED
label CDATA #REQUIRED
visible (true
| false) #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ELEMENT action (selection)*>name - 後來可作為動作路徑中最後一個記號來參照的分隔字元名稱。因此,分隔字元可作為動作和子功能表可新增其中的具名群組。
開始時,動作延伸項目的啟用準則是由 enablesFor 和 selection 來定義的。不過,在建立好動作委派的實例之後,它會直接在其 selectionChanged 方法中控制動作啟用狀態。
動作和功能表標籤可含有利用下列規則來編碼助記鍵和加速器的特殊字元:
以下是動作集的範例(請注意子元素和屬性的使用方式):
<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="&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.IWorkbenchWindowActionDelegate 或 org.eclipse.ui.IWorkbenchWindowPulldownDelegate 之類別的完整名稱。 在 pulldown 為 true 的情況下,應該實作後者。這個類別的載入要儘可能晚,以避免在真正需要它之前載入整個外掛程式。
提供的實作:外掛程式可以利用這個延伸點來加入新的最上層功能表(如「除錯」)。 外掛程式也可以定義具名群組,以讓其它外掛程式提供其動作到其中。
最上層功能表是利用 path 屬性的下列值來建立的:
工作台視窗中的預設群組定義在 IWorkbenchActionConstants 介面中。這些常數可用在動態提供的程式碼中。 這個值也可以複製到 XML 檔中,以更精密整合到現有工作台功能表及工具列中。
工作台視窗內的各種功能表和工具列項目都是以演算法定義。在這些情況下,必須利用個別機制來延伸視窗。
比方說,新增新的工作台檢視畫面會在「視景」功能表中出現新的功能表項目。
「匯入」、「匯出」和「新建精靈」等延伸項目也會自動新增到視窗中。