説明: この拡張ポイントは、他のプラグインにより登録されたビューのメニューおよび ツールバーにアクションを追加するために使用します。 各ビューには、ローカルのプルダウン・メニューがあります。これは、通常は右上の領域をクリックして アクティブにします。 このメニューには、その他のプラグインにより、サブメニューおよびアクションを追加することができます。 また、プラグインにより、ビュー・ツールバーにアクションを追加することもできます。 ビューの所有者は、最初にこれらの領域を配置することができます。 他のプラグインによるオプションの追加内容がこれに加えられます。
構成マークアップ:
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id - この contribution を参照するために使用される固有の ID。 targetID - contribution が加えられたビューの固有 ID (レジストリーに定義された ID)。
<!ELEMENT action (selection)* (enablement)?>name - 後でアクション・パスの最後のトークンとして参照が可能な区切り文字の名前。 区切り文字は、アクションの追加先とすることのできる名前付きグループとして使用することができます。
Eclipse のバージョン 2.0 では、enablement エレメントはアクションの使用可能性を 定義するために使用されます。 enablement エレメントの詳細については、 actionExpressions.html を参照してください。アクション拡張の使用可能性の基準は、最初は enablesFor, selection および enablement によって定義されています。 ただし、アクション代行がインスタンス化されると、その selectionChanged メソッド内の アクション使用可能状態のを直接制御できます。
アクションとメニュー・ラベルは、変換可能なテキスト中の簡略文字の前に、 アンパーサンド ('&') 文字で指定される簡略記号をエンコードする特殊文字を含む場合があります。 XML ストリングではアンパーサンドは使用できないため、& 文字エンティティーを 使用してください。
複数のアクションがメニューまたはツールバーに 1 つの拡張によって与えられる場合、 アクションは plugin.xml ファイルとは逆の順序でリストされます。 この振る舞いは、通常は一目ではわかりません。 ただし、これは Eclipse Platform API がフリーズした後で発見されます。 振る舞いを変更すると、既存の振る舞いに依存する各プラグインが中断する可能性があります。
例:
ビュー・アクション拡張ポイントの例を次に示します (サブエレメントと way 属性が使用されています)。
<extension point="org.eclipse.ui.viewActions">
<viewContribution
id="com.xyz.xyzViewC1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<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>
</viewContribution>
</extension>
上の例では、指定されたアクションは、単一選択 (enablesFor 属性) に対してのみ 使用可能となります。 また、この選択内の各オブジェクトは、指定されたインターフェース (IFile) を インプリメントする必要があり、Java ファイルである必要があります。 複数の selection エレメントが指定可能であり、この場合は「いずれかの」選択を表します。
API 情報: class 属性の値は、 org.eclipse.ui.IViewActionDelegate をインプリメントする Java クラスの完全修飾名である 必要があります。 このインターフェースは、プラグイン全体が必要となる前に全体がロードされることのないよう、 できる限り後からロードされます。 これは org.eclipse.ui.IActionDelegate を拡張し、contribution 先の ビュー・インスタンスにより代行者が初期化を行うことのできるメソッドを追加します。
提供されるインプリメンテーション: 各ビューには、通常、プルダウン・メニューと ローカル・ツールバーのいくつかの標準項目が提供されています。 他のプラグインによる追加内容は、標準の項目に追加されます。 パブリック・インターフェース内のビューにアクション ID をパブリッシュすると便利です。 たとえば、ワークベンチ・ウィンドウのアクションおよび主要グループは、 org.eclipse.ui.IWorkbenchActionConstants に定義されます。