Eclipse/プラグイン開発のTIPS集/メニューバーを構築する のページで、アクションクラスを用いたメニューバーの構築する方法についてまとめました。さて、Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する(Eclipse3.3版) でも書きましたが、Eclipse3.3からはアクション関連の機構は、かわりに org.eclipse.ui.commands 拡張ポイント関連を使うのが推奨されているようです。 メニューバーの構築方法もそれにともなって標準的なやり方が変わっているようなので、このページにまとめておきます。
標準的な構成は元ページ Eclipse/プラグイン開発のTIPS集/メニューバーを構築する のEclipse/RCPをそのまま用いてみようと思います。
もともとのEclipse/RCP のメニューバーの構成は、
[ワークベンチ] | |-[File] - "file" <- IWorkbenchActionConstants.M_FILE | -[終了] | |-GroupMarker - "additions" | |-[Help] - "help" <- IWorkbenchActionConstants.M_HELP | -[検索] | -"セパレータ" - "group01" | -[○○について] -
となっているとします。
拡張ポイントを用いて宣言的にメニューに項目を追加するには、いままではorg.eclipse.ui.actionSets 拡張ポイントを使ってましたが、Eclipse3.3からは org.eclipse.ui.menus 拡張ポイントを使用します。
では先の"セパレータ"部分にコマンドを追加します。拡張ポイントの指定方法は以下の通り。
<extension point="org.eclipse.ui.menus"> <menuContribution locationURI="menu:help?after=group01"> <command commandId="nu.mine.kino.plugin.samples.rcp.command" label="Sepa02に追加したコマンド" style="push"> </command> </menuContribution> </extension>
ポイントは、locationURI の指定方法です。
locationURI="menu:help?after=group01"
これですが、ワークベンチトップに追加したおいたhelp(IWorkbenchActionConstants?.M_HELPのこと) 内の、group01セパレータの後ろ、という意味になります。
ちなみにplugin.xml全体は以下の通り。
<extension point="org.eclipse.ui.handlers"> <handler commandId="nu.mine.kino.plugin.samples.rcp.command" class="nu.mine.kino.plugin.newaction.handlers.SampleHandler"> </handler> </extension> <extension point="org.eclipse.ui.commands"> <category id="nu.mine.kino.plugin.samples.rcp.category" name="Sample"/> <command categoryId="nu.mine.kino.plugin.samples.rcp.category" id="nu.mine.kino.plugin.samples.rcp.command" name="サンプルコマンド"/> </extension> <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="menu:help?after=group01"> <command commandId="nu.mine.kino.plugin.samples.rcp.command" label="Sepa02に追加したコマンド" style="push"> </command> </menuContribution> </extension>
以上で、先のセパレータ部分に、コマンドが追加されました。
この記事は
現在のアクセス:16533