プラグインは、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 スロットに新規メニューを配置することを指示しています。 (メニュー・パスおよびスロットの詳細については、メニューおよびツールバー・パスを参照してください。) さらに、メニュー内の特定ロケーションにアクションを挿入できるよう、新規メニューにいくつかのスロットを定義します。
このマークアップだけで、ワークベンチの「ウィンドウ」メニューにメニューが表示されます。
次に、アクション自体を定義します。
アクション定義 (id、label、icon、class) は、ビュー、エディター、およびポップアップで見られる他のアクションと類似しています。 ここでは、何が異なるのか、アクションはどうなるのかに焦点を当てて説明します。 ロケーションを示すには、menubarPath および toolbarPath を使用します。 最初に menubarPath を定義して、定義したばかりのメニュー ("window/org_eclipse_ui_examples_readmetool/slot1") のスロットにアクションを追加します。
次に、ワークベンチ・ツールバーにアクションを挿入するために新しい toolbarPath を定義します。 新しいツール・パス "readme" を定義したため、ワークベンチは他のプラグインのツールバー組み込みと関連付ける場所を決定します。
ユーザーがアクションを選択すると何が起こるのでしょう? このアクションは、class 属性によって指定されたクラスによって実装されます。 class アクションは、アクション・セットがツールバー内のプルダウン・メニューとして表示される場合、 IWorkbenchWindowActionDelegate、または IWorkbenchWindowPulldownDelegate を実装しなければなりません。 ツールバー・プルダウンを作成していないため、WindowActionDelegate を提供します。 このクラスは、ObjectActionDelegate と類似しています。 このクラスは、ユーザーがアクションを選択するときに、README セクション・ダイアログを起動します。 (セクション・ダイアログについては、アプリケーション・ダイアログで説明します。)
さらにアクションは、そのメニュー項目およびツールバーのために使用可能化条件を提供します。 メニューおよびツールバー項目は、単一 (enablesFor="1") の README ファイル (selectionClass ="org.eclipse.core.resources.IFile"name="*.readme") が選択された場合のみ、使用可能になります。 このアクションのメニューおよびツールバーの項目は、plugin.xml ファイルのマークアップを基にして表示され、使用可能になります。 ユーザーがアクションを選択し、ワークベンチが class アクションを実行するまで、プラグイン・コードはどれも実行されません。
他の 2 つのアクションは、再ターゲット可能なアクションのコンテキストで説明します。