Top / Eclipse / プラグイン開発のTIPS集 / ポップアップメニューの機能を追加する(Eclipse3.3版)

メニューバーを構築する(Eclipse3.3版)のページで、メインメニューやビュー内の△メニューへ機能を追加する方法が、Eclipse3.3から変更になったこと、その機能を使うための拡張ポイントがやインタフェースが、org.eclipse.ui.menus 拡張ポイントに統一化されたことを書きました。

さて、こんどはそのorg.eclipse.ui.menus 拡張ポイントを用いて、ポップアップメニューにコマンドを追加する方法をまとめたいと思います。

いままでは org.eclipse.ui.popupMenus 拡張ポイントとorg.eclipse.ui.IViewActionDelegate,org.eclipse.ui.IObjectActionDelegateこれらのインタフェースで実装されていましたが、これらポップアップメニュー機能もorg.eclipse.ui.menus拡張ポイントに統合されています。

popup01.png

このように、org.eclipse.ui.menus を使用して、URLの指定を

locationURI="popup:org.eclipse.ui.popup.any"

とするということで、ポップアップにコマンドを追加することができました。org.eclipse.ui.popup.any というIDは、全部のポップアップメニューという特殊なIDです。

特定のビューのみに表示したい場合は

locationURI="popup:org.eclipse.ui.views.ProblemView"

などとビューのIDをURIに指定します。かつて

<viewerContribution
    id="nu.mine.kino.plugin.samples.rcp.viewerContribution1"
    targetID="org.eclipse.ui.views.ProblemView">

などとして、IViewActionDelegate? を実装してなどとあまりキレイでなかったのですが、すっきり実装できるようになりました*1)

メニューの表示でやったときと同じく、locationURIは?でパラメタをつけてSeparator名を指定することで表示場所の制御を行うことも可能です。

ちなみにEclipse/プラグイン開発のTIPS集/getSite().registerContextMenuを理解するにあるとおり、ポップアップにコマンドを追加するにはポップアップ側でメニューとSelectionProvider?を公開しておく必要があります。SelectionProvider?についてはこちら


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Eclipse / プラグイン開発のTIPS集 / ポップアップメニューの機能を追加する(Eclipse3.3版)

現在のアクセス:15722


*1 ちなみにこのIDは厳密にはビューのIDではないみたいなのでご注意。みたいっつうのは前自分で書いたけど、忘れてるからです(´д`;

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