minimize

事業拡大のため、新しい仲間を募集しています。
→詳しくはこちら

ポップアップメニューでは、アクションとオブジェクトの結び付けを定義します。
アクションとは、何らかの処理の事を指します。
org.eclipse.ui.popupMenus のエクステンションを利用します。

<extension point="org.eclipse.ui.popupMenus">
  <objectContribution ...>
    <menu ... />
    <action ... />
  </objectContribution>
</extension>

objectContribution

オブジェクトとアクションの結び付けを定義します。

<objectContribution
       objectClass="org.eclipse.core.resources.IFile"
       nameFilter="*.xml"
       id="objectContribution1">
id

このcontributionに付けるID

objectClass

結びつける対象となるオブジェクトを指定します。

nameFilter

対象となるオブジェクト名のフィルタリングを定義します。
ワイルドカードが使用できます。
定義しない場合、objectClass で指定したインスタンス全てが対象となります。

menu

メニューを定義します。

<menu label="New Submenu"
      path="additions"
      id="org.limy.eclipse.core.menu1">
  <separator name="group1"/>
</menu>
id

メニューに付けるID

label

メニューの表示名

path

メニューを追加する場所を定義します。
いくつかの指定方法があります。

  • additions

    ルートメニューの最後に追加します。

  • some_menu_id

    既存メニュー some_menu_id と同階層(すぐ後ろ)にメニューを追加します。

  • some_menu_id/some_group

    既存メニュー some_menu_id の既存グループ some_group のすぐ後ろにメニューを追加します。

separator

メニュー内のセパレータ(区切り線)を定義します。

name

セパレータ名を定義します。この名前はグループ名として利用されます。

groupMarker

メニュー内のグループを定義します。
セパレータと異なり、画面上に区切り線などは表示されません。

name

グループ名を定義します。

action

アクションを定義します。

id

アクションに付けるID

label

アクションの表示名

definitionId

アクションに結びつけるコマンドID

menubarPath

アクションを表示する場所のメニューID

icon

アクションを表示するアイコン

helpContentId

アクションのヘルプコンテキストID

style

アクションスタイルを定義します。

  • push

    デフォルトスタイルです。

  • radio

    ラジオボタンスタイルにします。

  • toggle

    トグルボタンスタイルにします。

  • pulldown

    プルダウンスタイルにします。

state

ラジオボタンまたはトグルボタンのデフォルト値を true / false で指定します。
デフォルトはfalseです。

class

アクションクラス名を指定します。
クラスは org.eclipse.ui.IActionDelegate を実装している必要があります。

enablesFor

選択しているオブジェクト数によって、アクションの有効/無効を制御します。

  • !

    オブジェクトが全く選択されていないときにアクションを有効にします。

  • ?

    オブジェクトが0または1つだけ選択されているときにアクションを有効にします。

  • +

    オブジェクトが1つ以上選択されているときにアクションを有効にします。

  • multiple, 2+

    オブジェクトが2つ以上選択されているときにアクションを有効にします。

  • n

    オブジェクトが n 個選択されているときに限ってアクションを有効にします。

  • *

    あらゆる状態でアクションを有効にします(デフォルト)。

overrideActionId

詳細は不明です。

tooltip

アクションのツールチップ文字列を定義します。

結び付けの例

リソース(あらゆるファイルの総称)とアクションを結び付けてみましょう。

<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 と記述しています。
これで、IResourceObjectAction が結び付きました。

Navigator ビュー等で適当なリソースを選択し、右クリックを押して下さい、
「Test Resource Action」というメニューが追加されていれば成功です。

特定のビューとアクションを結び付けるには、
objectContribution の替わりに viewerContribution を使用します。

<viewerContribution
      targetID="plugin_test.SampleView"
      id="plugin-test.viewerContribution1">

targetID には、対象とするビューのIDを記述します。