// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents


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 拡張ポイントを使用します。

では先の"セパレータ"部分にコマンドを追加します。拡張ポイントの指定方法は以下の通り。
 <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>

以上で、先のセパレータ部分に、コマンドが追加されました。


#ref(rcp03.png)

**関連リンク [#v5811993]
-[[Eclipse/プラグイン開発のTIPS集/メニューバーを構築する]]

----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS