org.eclipse.ui.actionSets

プラグインは、org.eclipse.ui.actionSets 拡張ポイントを使用して、メニュー、メニュー項目、およびツールバー項目をワークベンチ・メニューおよびツールバーに組み込むことができます。 すべてのプラグインのメニュー組み込みが一度に表示されることによる乱雑性を減らすため、 組み込みは、ユーザーの設定によって表示できるアクション・セットにグループ化されます。

ワークベンチ・メニューで 「ウィンドウ」->「パースペクティブのカスタマイズ...」 を選択して、 どのアクション・セットがワークベンチに組み込まれたかを見ることができます。 このオプションによって、アクション・セットをコマンドのグループとしてリストするダイアログが表示されます。 コマンド・グループのそばにあるチェックマークは、そのメニューおよびツールバー・アクションが、ワークベンチに表示されることを意味します。 コマンド・グループ名を選択すると、選択可能なメニューおよびツールバー・アクションのリストが右側に表示されます。 次の図では、ワークベンチで選択可能なコマンド・グループのリストが表示されています。  (ワークベンチは、どのプラグインをインストールしたか、どのパースペクティブがアクティブであるかによって、異なって見える可能性があります)。

アクション・セット・リストを持つ「パースペクティブのカスタマイズ」ダイアログ

README ツールは、アクション・セットを使用して、いくつかの異なる「Readme Browser を開く」アクションをワークベンチ・メニューに組み込みます。  (リソース・ナビゲーターのポップアップ・メニューへの類似アクションの組み込みについて既に説明しました。)   マークアップは、以下のとおりです。

<extension point = "org.eclipse.ui.actionSets">
	   <actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
		   label="%ActionSet.name"
		   visible="true">
		   <menu id="org_eclipse_ui_examples_readmetool"
			   label="%ActionSet.menu"
			   path="window/additions">
			   <separator name="slot1"/>
			   <separator name="slot2"/>
			   <separator name="slot3"/>
		   </menu>
		   <action id="org_eclipse_ui_examples_readmetool_readmeAction"
			   menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
			   toolbarPath="readme"
			   label="%ReadmeAction.label"
			   tooltip="%ReadmeAction.tooltip"
			   helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
			   icon="icons/ctool16/openbrwsr.png"
			   class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
			   enablesFor="1">
			   <selection class="org.eclipse.core.resources.IFile"
					name="*.readme">
			   </selection>
		   </action>
		   ...
	   </actionSet>
   </extension>

たくさんありますが、1 つずつ順を追って、ここでは最初のアクションのみを学習しましょう。    

まずアクション・セットが宣言され、label が与えられます。  上に表示されるダイアログでアクション・セットを表示するために、 (プラグインのプロパティー・ファイル内の %ActionSet.name キーのために定義された) "ReadMe Actions" ラベルが使用されます。  visible を true に設定したため、ワークベンチは最初にアクション・セット・リストのアクション・セットにチェックマークを付け、 そのアクションはすべて可視になります。

アクション・セット宣言の残りは、アクションが表示されるメニューおよびそのアクション自体を定義することに関係しています。

label がワークベンチ・メニューに表示されるメニューを定義します。  メニューの path は、ワークベンチに対し、window メニューの additions スロットに新規メニューを配置することを指示しています。  (メニュー・パスおよびスロットの詳細については、メニューおよびツールバー・パスを参照してください。) さらに、メニュー内の特定ロケーションにアクションを挿入できるよう、新規メニューにいくつかのスロットを定義します。  

このマークアップだけで、ワークベンチの「ウィンドウ」メニューにメニューが表示されます。

README ファイル・エディター項目を持つワークベンチ・ウィンドウ

次に、アクション自体を定義します。   

アクション定義 (idlabeliconclass) は、ビュー、エディター、およびポップアップで見られる他のアクションと類似しています。  ここでは、何が異なるのか、アクションはどうなるのかに焦点を当てて説明します。  ロケーションを示すには、menubarPath および toolbarPath を使用します。  最初に menubarPath を定義して、定義したばかりのメニュー ("window/org_eclipse_ui_examples_readmetool/slot1") のスロットにアクションを追加します。    

メニュー項目を持つ README ファイル・エディター

次に、ワークベンチ・ツールバーにアクションを挿入するために新しい toolbarPath を定義します。  新しいツール・パス "readme" を定義したため、ワークベンチは他のプラグインのツールバー組み込みと関連付ける場所を決定します。

README アクションを備えたワークベンチ・ツールバー

ユーザーがアクションを選択すると何が起こるのでしょう?  このアクションは、class 属性によって指定されたクラスによって実装されます。  class アクションは、アクション・セットがツールバー内のプルダウン・メニューとして表示される場合、 IWorkbenchWindowActionDelegate、または IWorkbenchWindowPulldownDelegate を実装しなければなりません。  ツールバー・プルダウンを作成していないため、WindowActionDelegate を提供します。  このクラスは、ObjectActionDelegate と類似しています。  このクラスは、ユーザーがアクションを選択するときに、README セクション・ダイアログを起動します。  (セクション・ダイアログについては、アプリケーション・ダイアログで説明します。)

さらにアクションは、そのメニュー項目およびツールバーのために使用可能化条件を提供します。  メニューおよびツールバー項目は、単一 (enablesFor="1") の README ファイル (selectionClass ="org.eclipse.core.resources.IFile"name="*.readme") が選択された場合のみ、使用可能になります。  このアクションのメニューおよびツールバーの項目は、plugin.xml ファイルのマークアップを基にして表示され、使用可能になります。  ユーザーがアクションを選択し、ワークベンチが class アクションを実行するまで、プラグイン・コードはどれも実行されません。

他の 2 つのアクションは、再ターゲット可能なアクションのコンテキストで説明します。