ポップアップメニューでは、アクションとオブジェクトの結び付けを定義します。
アクションとは、何らかの処理の事を指します。org.eclipse.ui.popupMenus のエクステンションを利用します。
<extension point="org.eclipse.ui.popupMenus">
<objectContribution ...>
<menu ... />
<action ... />
</objectContribution>
</extension>
オブジェクトとアクションの結び付けを定義します。
<objectContribution
objectClass="org.eclipse.core.resources.IFile"
nameFilter="*.xml"
id="objectContribution1">
このcontributionに付けるID
結びつける対象となるオブジェクトを指定します。
org.eclipse.core.resources.IFile
全てのファイル
org.eclipse.jdt.core.IJavaElement
全てのJavaエレメント(フィールド、メソッド、Javaファイル、パッケージなど全てを含む)
対象となるオブジェクト名のフィルタリングを定義します。
ワイルドカードが使用できます。
定義しない場合、objectClass で指定したインスタンス全てが対象となります。
メニューを定義します。
<menu label="New Submenu"
path="additions"
id="org.limy.eclipse.core.menu1">
<separator name="group1"/>
</menu>
メニューに付けるID
メニューの表示名
メニューを追加する場所を定義します。
いくつかの指定方法があります。
ルートメニューの最後に追加します。
既存メニュー some_menu_id と同階層(すぐ後ろ)にメニューを追加します。
既存メニュー some_menu_id の子としてメニューを追加します。
既存メニュー some_menu_id の既存グループ some_group のすぐ後ろにメニューを追加します。
メニュー内のセパレータ(区切り線)を定義します。
セパレータ名を定義します。この名前はグループ名として利用されます。
メニュー内のグループを定義します。
セパレータと異なり、画面上に区切り線などは表示されません。
グループ名を定義します。
アクションを定義します。
アクションに付けるID
アクションの表示名
アクションに結びつけるコマンドID
アクションを表示する場所のメニューID
アクションを表示するアイコン
アクションのヘルプコンテキストID
アクションスタイルを定義します。
デフォルトスタイルです。
ラジオボタンスタイルにします。
トグルボタンスタイルにします。
プルダウンスタイルにします。
ラジオボタンまたはトグルボタンのデフォルト値を true / false で指定します。
デフォルトはfalseです。
アクションクラス名を指定します。
クラスは org.eclipse.ui.IActionDelegate を実装している必要があります。
選択しているオブジェクト数によって、アクションの有効/無効を制御します。
オブジェクトが全く選択されていないときにアクションを有効にします。
オブジェクトが0または1つだけ選択されているときにアクションを有効にします。
オブジェクトが1つ以上選択されているときにアクションを有効にします。
オブジェクトが2つ以上選択されているときにアクションを有効にします。
オブジェクトが n 個選択されているときに限ってアクションを有効にします。
あらゆる状態でアクションを有効にします(デフォルト)。
詳細は不明です。
アクションのツールチップ文字列を定義します。
リソース(あらゆるファイルの総称)とアクションを結び付けてみましょう。
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
objectClass="org.eclipse.core.resources.IResource"
id="objectContribution1">
<action
label="Test Resource Action"
class="test.ObjectAction"
id="test.objectAction">
</action>
</objectContribution>
</extension>
ここではリソースと結び付けるので、IResource と記述しています。
これで、IResource と ObjectAction が結び付きました。
Navigator ビュー等で適当なリソースを選択し、右クリックを押して下さい、
「Test Resource Action」というメニューが追加されていれば成功です。
特定のビューとアクションを結び付けるには、objectContribution の替わりに viewerContribution を使用します。
<viewerContribution
targetID="plugin_test.SampleView"
id="plugin-test.viewerContribution1">
targetID には、対象とするビューのIDを記述します。