#author("2020-12-04T08:56:25+00:00","","")
#author("2021-10-20T13:37:08+00:00","","")
#topicpath
----
//ここにコンテンツを記述します。
org.eclipse.ui.IEditorActionDelegateはエディタを右クリックしたときに現れるポップアップメニューに項目を追加するためのインターフェースです。

#contents

***拡張ポイント [#v1dbf0ac]
 org.eclipse.ui.popupMenus (IObjectActionDelegateと同じ)

***plugin.xmlのサンプル [#q9a8b976]
 <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>

**ポイント [#pc4cb801]
実装クラスはIEditorActionDelegateを実装します。実際に使用するメソッドは
 setActiveEditor(IAction action, IEditorPart targetEditor)
 run(IAction action) 
でしょう。

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


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

***エディタで選択された文字列をビューで使う [#c80407e7]
よく使われそうな処理フローは
-エディタで文字列を選択して右クリック、このメニューを選択
-その文字列を使ってなんか処理して
-結果をビューに表示する

などだと思います。((CallHierarchyとかそうですよね))
このとき 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" ですね。これって??



***関連リンク [#o7b87a93]
-[[テキストエディタのコンテキストメニューID:http://yoichiro.cocolog-nifty.com/eclipse/2004/09/id.html]]
-[[特定ビューへのコンテキストメニュー項目の追加:http://yoichiro.cocolog-nifty.com/eclipse/2004/02/post_4.html]]
-[[テキストツールプラグイン‐アクション参考:http://www.javadeveloper.jp/members/regular/Rensai.category_rensai_article_eclipse_issue_09_page_2.dhtml]]

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

#comment
#topicpath


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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS