メニュー拡張ポイントのいずれかを使用してプラグインがワークベンチ UI にアクションを組み込むとき、 プラグインは、メニュー内でメニュー項目を可視および/または使用可能にする条件を指定できます。 選択カウントおよび選択クラスなど、簡単な使用可能化条件の提供に加え、 プラグインはブール式を使用してアクションを可視または使用可能にできます。
ブール式には、簡単なブール演算子 (NOT、AND、OR) および以下の条件を評価できる事前定義式を組み込むことができます。
objectClass - 選択内の各オブジェクトがクラスをサブクラス化、またはインプリメントしている場合は真。
objectState - 名前付き属性が指定された値と等しい場合は真。 IActionFilter は式の評価を支援します。 アクション・フィルターは、ターゲット選択および名前付き属性の値に基づき、アクションの使用可能性基準を動的に計算します。
systemProperty - 名前付きシステム・プロパティーが指定された値と等しい場合は真。
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 マークアップ属性およびブール式を使用して使用可能性に影響を与える方法も要約されています。
拡張ポイント名 |
使用可能性に影響を与える属性 |
ブール式 |
---|---|---|
enablesFor - 使用可能になるアクションに適合する必要のある選択カウントを指定します。 selection class - アクションを使用可能にするため、選択オブジェクトがサブクラス化またはインプリメントする必要のあるクラス。 selection name - 選択内のオブジェクトに適用できるワイルドカード・フィルター。 |
visibility - ブール式。 メニュー項目をメニューに表示するかどうかを制御します。 enablement - ブール式。 メニュー項目をメニューで使用可能にするかどうかを制御します。 enablesFor 属性、selection class、および name は、使用可能性式を 適用する前に基準を満たしている必要があります。 |
|
(オブジェクト contribution の場合のみ) objectClass - 選択内のオブジェクトがサブクラス化またはインプリメントする必要のあるクラスを指定します。 (オブジェクト contribution とビューアー contribution の両方の場合) enablesFor - 使用可能になるアクションに適合する必要のある選択カウントを指定します。 selection class - アクションを使用可能にするため、選択オブジェクトがサブクラス化またはインプリメントする必要のあるクラス。 selection name - 選択内のオブジェクトに適用できるワイルドカード・フィルター。
|
(オブジェクト contribution とビューアー contribution の両方の場合) visibility - ブール式。 メニュー項目をメニューに表示するかどうかを制御します。 enablement - ブール式。 メニュー項目をメニューで使用可能にするかどうかを制御します。 enablesFor 属性、selection class、および name は、使用可能性式を 適用する前に基準を満たしている必要があります。 |