メニュー拡張ポイントのいずれかを使用して、プラグインがワークベンチ 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 マークアップ属性およびブール式を使用して使用可能性に影響を与える方法も要約されています。
|
拡張ポイント名 |
使用可能性に影響を与える属性 |
ブール式 |
|---|---|---|
|
viewActions |
enablesFor - 使用可能になるアクションに適合する必要のある選択カウントを指定します。 selection class - アクションを使用可能にするため、選択オブジェクトがサブクラス化またはインプリメントする必要のあるクラス。 selection name - 選択内のオブジェクトに適用できるワイルドカード・フィルター。 |
enablement - ブール式。 使用可能性式を適用するには、selection class、name、および enablesFor が基準を満たしている必要があります。 |
|
editorActions |
enablesFor - 使用可能になるアクションに適合する必要のある選択カウントを指定します。 selection class - アクションを使用可能にするため、選択オブジェクトがサブクラス化またはインプリメントする必要のあるクラス。 選択名 - 選択内のオブジェクトに適用できるワイルドカード・フィルター。
|
使用可能性 - ブール式。 使用可能性式を適用するには、selection class、name、および enablesFor が基準を満たしている必要があります。 |
|
popupMenus |
(オブジェクト contribution の場合のみ) objectClass - 選択内のオブジェクトがサブクラス化またはインプリメントする必要のあるクラスを指定します。 (オブジェクトおよびビューアー contribution の場合のみ) enablesFor - 使用可能になるアクションに適合する必要のある選択カウントを指定します。 selection class - アクションを使用可能にするため、選択オブジェクトがサブクラス化またはインプリメントする必要のあるクラス。 selection name - 選択内のオブジェクトに適用できるワイルドカード・フィルター。
|
visibility - ブール式。 使用可能性式を適用するには、selection class、name、および enablesFor が基準を満たしている必要があります。
|
|
actionSets |
enablesFor - 使用可能になるアクションに適合する必要のある選択カウントを指定します。 selection class - アクションを使用可能にするため、選択オブジェクトがサブクラス化またはインプリメントする必要のあるクラス。 selection name - 選択内のオブジェクトに適用できるワイルドカード・フィルター。
|
enablement - ブール式。 使用可能性式を適用するには、selection class、name、および enablesFor が基準を満たしている必要があります。
|