#topicpath ---- //ここにコンテンツを記述します。 org.eclipse.ui.IEditorActionDelegateはエディタを右クリックしたときに現れるポップアップメニューに項目を追加するためのインターフェースです。 #contents ***拡張ポイント 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メソッド内でロジックを記述する、なんてのが基本パターンでしょうか。 ***エディタで選択された文字列をビューで使う よく使われそうな処理フローは -エディタで文字列を選択して右クリック、このメニューを選択 -その文字列を使ってなんか処理して -結果をビューに表示する などだと思います。((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" ですね。これって?? http://yoichiro.cocolog-nifty.com/eclipse/2004/02/post_4.html ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}