當外掛程式使用其中一個功能表延伸點來提供動作給工作台 UI 時, 它可以指定功能表項目啟用(或可見的)的條件。除了提供簡單啟用條件,例如選項計數和選項類別,外掛程式可以使用 Boolean 表示式來啟用動作。
Boolean 表示式可以包含簡單 Boolean 運算子(NOT,AND,OR)和預先定義表示式,可評估下列條件:
objectClass - True,如果每一個物件都在選項子類別中或實作此類別。
objectState - True,如果指名的屬性等於指定的值。IActionFilter 協助評估表示式。動作過濾器依據目標選項和指名的屬性值動態地計算動作的啟用準則。
systemProperty - True,如果指名的系統內容等於指定的值。
pluginState - 指出應該安裝或啟動特定的外掛程式(依 ID)
例如,下列片段代表動作集中假設動作所使用的啟用表示式:
<action id="org.eclipse.examples.actionEnablement.class" label="Red Element" menubarPath="additions" class="org.eclipse.examples.actionEnablement.ObjectTestAction"> <enablement> <and> <objectClass name="org.eclipse.examples.actionEnablement.TestElement"/> <objectState name="name" value="red"/> </and> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.property" label="Property" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PropertyTestAction"> <enablement> <systemProperty name="MyTestProperty" value="puppy"/> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.pluginState" label="Installed" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PluginTestAction"> <enablement> <pluginState id="x.y.z.anotherPlugin" value="installed"/> </enablement> </action>
請參閱動作表示式 以取得這些表示式精心製作的範例和 XML 的完整說明。
下列表格列出提供動作的延伸點並彙總如何使用 XML 標記屬性和 Boolean 表示式來影響啟用。
延伸點名稱 |
屬性影響啟用 |
Boolean 表示式 |
---|---|---|
viewActions |
enablesFor - 指出必須達到啟用動作的選項計數。 selection class - 已選取物件的類別必須為子類別,或實作以啟用動作。 selection name - 可套用到選項中之物件的萬用字元過濾條件。 |
enablement - Boolean 表示式。 在套用啟用表示式之前,必須滿足 selection class,name,和 enablesFor。 |
editorActions |
enablesFor - 指出必須達到啟用動作的選項計數。 selection class - 已選取物件的類別必須為子類別,或實作以啟用動作。 selection name - 可套用到選項中之物件的萬用字元過濾條件。
|
enablement - Boolean 表示式。 在套用啟用表示式之前,必須滿足 selection class,name,和 enablesFor。 |
popupMenus |
(物件構成要素專屬。) objectClass - 指定選項中物件的類別必須為子類別或實作。 (物件和檢視器構成要素) enablesFor - 指出必須達到啟用動作的選項計數。 selection class - 已選取物件的類別必須為子類別,或實作以啟用動作。 selection name - 可套用到選項中之物件的萬用字元過濾條件。
|
visibility - Boolean 表示式。 在套用啟用表示式之前,必須滿足 selection class,name,和 enablesFor。
|
actionSets |
enablesFor - 指出必須達到啟用動作的選項計數。 selection class - 已選取物件的類別必須為子類別,或實作以啟用動作。 selection name - 可套用到選項中之物件的萬用字元過濾條件。
|
enablement - Boolean 表示式。 在套用啟用表示式之前,必須滿足 selection class,name,和 enablesFor。
|