- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
Eclipse/プラグイン開発のTIPS集/メニューバーを構築する のページで、アクションクラスを用いたメニューバーの構築する方法についてまとめました。さて、Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する(Eclipse3.3版) でも書きましたが、Eclipse3.3からはアクション関連の機構は、かわりに org.eclipse.ui.commands 拡張ポイント関連を使うのが推奨されているようです。 メニューバーの構築方法もそれにともなって標準的なやり方が変わっているようなので、このページにまとめておきます。
Eclipse/プラグイン開発のTIPS集/メニューバーを構築する のページで、アクションクラスを用いたメニューバーの構築する方法についてまとめました。さて、Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する(Eclipse3.3版) でも書きましたが、Eclipse3.3からはアクション関連の機構は、かわりに org.eclipse.ui.commands 拡張ポイント関連を使うのを推奨しているようです。 メニューバーの構築方法もそれにともなって標準のやり方が変わっているようなので、このページにまとめておきます。
標準的な構成は元ページ Eclipse/プラグイン開発のTIPS集/メニューバーを構築する のEclipse/RCPをそのまま用いてみようと思います。
**対象のRCPのワークベンチ構成 [#w804ff7c]
もともとのEclipse/RCP のメニューバーの構成は、
[ワークベンチ]
|
|-[File] - "file" <- IWorkbenchActionConstants.M_FILE
| -[終了]
|
|-GroupMarker - "additions"
|
|-[Help] - "help" <- IWorkbenchActionConstants.M_HELP
| -[検索]
| -"セパレータ" - "group01"
| -[○○について] -
となっているとします。
#ref(rcp01.png)
#ref(rcp02.png)
**拡張ポイントから宣言的に [#o26e0d60]
拡張ポイントを用いて宣言的にメニューに項目を追加するには、いままではorg.eclipse.ui.actionSets 拡張ポイントを使ってましたが、Eclipse3.3からは org.eclipse.ui.menus 拡張ポイントを使用します。
拡張ポイントを用いて宣言的にメニューに項目を追加するには、いままでは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に追加したコマンド"
label="group01に追加したコマンド"
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に追加したコマンド"
label="group01に追加したコマンド"
style="push">
</command>
</menuContribution>
</extension>
以上で、先のセパレータ部分に、コマンドが追加されました。
#ref(rcp03.png)
*** アクションではなく、サブメニューを追加する [#hed5215b]
次に、サブメニューを追加したいと思います。具体的には次のようにしたいと思います。
[ワークベンチ]
|
|-[File] - "file" <- IWorkbenchActionConstants.M_FILE
| -[終了]
|
|-[Help] - "help" <- IWorkbenchActionConstants.M_HELP
| -[検索]
| -"セパレータ" - "group01"
| -[追加メニュー。] - "menu01" <- plugin.xmlで追加
| -"セパレータ" - "sepa01" <- plugin.xmlで追加
| -[追加アクション。] - <- plugin.xmlで追加
| -[○○について] -
セパレータ部分に「追加メニュー。」というサブメニューを追加し、その下にさっきのアクションを追加したいと思います。
plugin.xmlに以下の通り記述します。さっきのorg.eclipse.ui.menusの記述はいったん削除しましょう。
<extension point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:help?after=group01">
<menu label="追加メニュー。">
<command
commandId="nu.mine.kino.plugin.samples.rcp.command"
label="追加アクション。"
style="push">
</command>
</menu>
</menuContribution>
</extension>
#ref(rcp04.png)
**関連リンク [#v5811993]
-[[Eclipse/プラグイン開発のTIPS集/メニューバーを構築する]]
-[[Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する(Eclipse3.3版)]]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}