Top / Eclipse / プラグイン開発のTIPS集 / org.eclipse.ui.IEditorActionDelegate(ポップアップメニュー)

org.eclipse.ui.IEditorActionDelegate?はエディタを右クリックしたときに現れるポップアップメニューに項目を追加するためのインターフェースです。

拡張ポイント

org.eclipse.ui.popupMenus (IObjectActionDelegateと同じ)

plugin.xmlのサンプル

<extension point="org.eclipse.ui.popupMenus">
  <viewerContribution
    targetID="#CompilationUnitEditorContext" <- Javaエディタ
    id="nu.mine.kino.plugin.javadocsearch.CompilationUnitEditorContext">
     <action label="JavaDoc検索" <- コンテキストメニューの文字列
       class="nu.mine.kino.plugin.javadocsearch.CompilationUnitEditorContextAction"
       menubarPath="additions"        ↑ 実装クラス
       id="nu.mine.kino.plugin.javadocsearch.CompilationUnitEditorContextAction">
        <selection
          class="org.eclipse.jface.text.ITextSelection">
        </selection>
     </action>
  </viewerContribution>
</extension>

ポイント

実装クラスはIEditorActionDelegate?を実装します。実際に使用するメソッドは

setActiveEditor(IAction action, IEditorPart targetEditor)
run(IAction action) 

でしょう。

setActiveEditor?(IAction action, IEditorPart? targetEditor)

エディタの編集しているファイルが切り替わったときに呼ばれるメソッドです。このメソッド内でフィールドにIEditorPart?を保持しておいて、runメソッドでIEditorPart? から何かを取り出す、といったロジックが多いのかな?

run(IAction action)

実際にメニューから選択されたときに呼ばれるメソッドです。setActiveEditor?で選択されたリソースをフィールドに保持して、runメソッド内でロジックを記述する、なんてのが基本パターンでしょうか。

エディタで選択された文字列をビューで使う

よく使われそうな処理フローは

  • エディタで文字列を選択して右クリック、このメニューを選択
  • その文字列を使ってなんか処理して
  • 結果をビューに表示する

などだと思います。*1 このとき run(IAction action) からビューに処理を依頼しなくてはいけないので、ビューへの参照が必要です。やり方はIWorkbenchPage?#showView(String viewID)を使えばよいようです。

IWorkbenchPage workbenchPage = editor.getSite().getPage();
try {
  HogeView view =
    (HogeView) workbenchPage.showView("HogeViewのID");
} catch (PartInitException e) {
}

今のところまだよくわからないのが、viewerContributionのtargetID="#CompilationUnitEditorContext?" ですね。これって??

関連リンク


この記事は

選択肢 投票
おもしろかった 12  
そうでもない 1  
  • トラバありがとうございます!#CompilationUnitEditorContext?について記事を書いて,ここにトラバさせていただきました。ご参考になれば幸いです!ではでは。 -- よういちろう? 2004-09-12 (日) 22:46:45
  • コメントありがとうございます。せっかくトラックバックして頂いたのですが、TrackBack?機能をOFFにさせて頂きました(Pukiwikiのバージョンアップの関係で)。。しかし、よういちろうさんのサイトは、プラグイン開発の際に非常に参考にさせてもらっています。メニューにリンクまで張って頂き、光栄です。 -- きの? 2004-09-13 (月) 00:04:24
  • Eclipseプラグイン開発の輪が広がれば,と思ってリンクを張らせていただきました。断りなく張ってごめんなさいです。Eclipseプラグイン,お互い盛り上げて行きましょうね!ではでは,また来ますー。 -- よういちろう? 2004-09-13 (月) 09:47:11
  • コード補完 -- 2008-01-21 (月) 08:22:34
  • 勉強になった -- ebaby? 2011-11-11 (金) 21:56:03

Top / Eclipse / プラグイン開発のTIPS集 / org.eclipse.ui.IEditorActionDelegate(ポップアップメニュー)

現在のアクセス:16317


*1 CallHierarchy?とかそうですよね

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-20 (水) 22:37:08 (1142d)