プラグインは、 org.eclipse.ui.actionSets 拡張ポイントを使用して、メニュー、メニュー項目、およびツールバー項目を ワークベンチ・メニューおよびツールバーへ組み込むことができます。 すべてのプラグインのメニュー組み込みが一度に表示される乱雑性を減らすために、 組み込みは、ユーザーの設定により表示できるアクション・セットにグループ化されます。
ワークベンチ・メニューの 「パースペクティブ (Perspective)」->「カスタマイズ (Customize...)」を選択して、 どのアクション・セットがワークベンチへ組み込まれたかを見ることができます。 これにより、選択可能なアクションの集合のすべてをリストするダイアログが表示されます。アクション・セットの横にあるチェックマークは、メニューおよびツールバー・アクションがワークベンチで可視であることを意味します。 アクション・セット名を選択すると、選択可能なアクションのリストが右側に表示されます。以下の図は、 ワークベンチで選択可能なアクションの集合のリストを示しています (ワークベンチは、どのプラグインをインストールしたか、どのパースペクティブがアクティブであるかによって、 異なって見える可能性があります)。
README ツールは、アクション・セットを使用して、 「Readme Browser を開く (Open Readme Browser)」アクションをワークベンチ・メニューへ組み込みます (リソース・ナビゲーターのポップアップ・メニューへの類似アクションの組み込みについてすでに説明しました)。 マークアップは、以下のとおりです。
<extension
point = "org.eclipse.ui.actionSets">
<actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
label="ReadMe Actions"
visible="true">
<menu id="org_eclipse_ui_examples_readmetool"
label="Readme &File Editor"
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="&Open Readme
Browser@Ctrl+R"
tooltip="Open Readme Browser"
helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
icon="icons/basic/ctool16/openbrwsr.gif"
class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
enablesFor="1">
<selection
class="org.eclipse.core.resources.IFile"
name="*.readme">
</selection>
</action>
</actionSet>
</extension>
たくさんありますが、1 つずつ順を追って学習しましょう。
最初に、アクション・セットは宣言され、label を与えられます。 上に表示されるダイアログでアクション・セットを表示するために、"ReadMe Actions" ラベルが使用されます。 可視 (visible) を真に設定したため、 ワークベンチは最初にアクション・セット・リストのアクション・セットにチェックマークを付け、 そのアクションはすべて可視になります。
アクション・セット宣言の残りは、アクションが表示されるメニューおよびそのアクション自体を定義することに関係しています。
ラベル ("Readme& ファイル・エディター") がワークベンチ・メニューに表示されるメニューを定義します。 メニューの パス は、ワークベンチに対し、 window メニューの 追加 スロットに新規メニューを配置することを指示しています (メニュー・パスおよびスロットの詳細については、 メニューおよびツールバー・パス を参照してください)。 新規メニューに、いくつかのスロットを定義します。 これは、メニュー内の特定ロケーションにアクションを挿入するために使用することができます。
これだけで、ワークベンチの「ウィンドウ (Window)」メニューにメニューが表示されます。
次に、アクション自体を定義します。 アクション定義 (id, label, icon, class) は、 ビュー、エディター、およびポップアップで見られる他のアクションと類似しています。 ここでは、何が異なるのか、アクションはどうなるのかに焦点を当てて説明します。 ロケーションを示すには、 menubarPath および toolbarPath を使用します。 最初に、定義したばかりのメニューのスロットにアクションを追加します。
次に、ワークベンチ・ツールバーにアクションを挿入するために新規の toolbarPath を定義します。 これは、新規のツール・パスであるため、ワークベンチは他のプラグインのツールバー組み込みと関連付ける場所を決定します。
また、このアクションにより、条件が使用可能化されることに注意してください。 新規メニュー項目およびツールバー項目は、単一の (enablesFor="1") README ファイル (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") が 選択されるときにのみ使用可能になります。
これらのメニューおよびツールバーの項目は、plugin.xml ファイルのマークアップのみを基にして、 表示され、使用可能になります。 ユーザーがアクションを選択し、ワークベンチが class アクションを実行するまで、 プラグイン・コードはどれも実行されません。
class アクションは、アクション・セットがツールバー内のプルダウン・メニューとして表示される場合、 IWorkbenchWindowActionDelegate、 または IWorkbenchWindowPulldownDelegate を インプリメントしなければなりません。 ツールバー・プルダウンを作成しているのではないため、WindowActionDelegate を提供します。 このクラスは、ObjectActionDelegate と類似しています。 このクラスは、ユーザーがアクションを選択するときに、README セクション・ダイアログを起動します。 セクション・ダイアログについては、アプリケーション・ダイアログ を参照してください。