オリジナルのコードをeclipseで編集するためのプラグインを作成しています。
同時にデバッガーも実装したいのですが、ルーラーをダブルクリックしたときのデリゲートが取れなくて悩んでます。
右クリックから「Add Breakpoint Hoge」を選択するとBreakpointRulerActionのrun()が実行されるのはわかっているのですが、ダブルクリックの場合はどうしたらいいでしょうか。
plugin.xml
1 <extension point="org.eclipse.ui.popupMenus"> 2 <viewerContribution 3 id="test10.EditPopupActions" 4 targetID="#TextRulerContext"> 5 <action 6 id="test10.ManageBreakpointRulerActionDelegate" 7 label="Add Breakpoint Hoge" 8 menubarPath="debug" 9 class="test10.ManageBreakpointRulerActionDelegate"> 10 </action> 11 </viewerContribution> 12 </extension> 13 14 <extension point="org.eclipse.ui.editorActions"> 15 <editorContribution 16 id="test10.BreakpointRulerActions" 17 targetID="test10.HogeEditor"> 18 <action 19 id="test10.BreakpointRulerAction" 20 actionID="RulerDoubleClick" 21 label="Add breakpoint" 22 class="test10.ManageBreakpointRulerActionDelegate"> 23 </action> 24 </editorContribution> 25 </extension>
ManageBreakpointRulerActionDelegate.java
1package test10; 2 3import java.awt.Event; 4import java.awt.event.MouseEvent; 5 6import org.eclipse.jface.action.IAction; 7import org.eclipse.jface.text.source.IVerticalRulerInfo; 8import org.eclipse.ui.texteditor.AbstractRulerActionDelegate; 9import org.eclipse.ui.texteditor.ITextEditor; 10 11public class ManageBreakpointRulerActionDelegate extends AbstractRulerActionDelegate { 12 13 @Override 14 protected IAction createAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) { 15 return new BreakpointRulerAction(editor, rulerInfo); 16 } 17 18 public void runWithEvent(IAction action, Event event) { 19 System.out.println("runWithEvent"); 20 } 21 22 public void mouseDown(MouseEvent e) { 23 System.out.println("mouseDown"); 24 } 25 26 public void mouseDoubleClick(MouseEvent e) { 27 System.out.println("mouseDoubleClick"); 28 } 29 30} 31
BreakpointRulerAction.java
1package test10; 2 3import java.awt.Event; 4 5import org.eclipse.jface.action.Action; 6import org.eclipse.jface.action.IAction; 7import org.eclipse.jface.text.source.IVerticalRulerInfo; 8import org.eclipse.ui.texteditor.ITextEditor; 9 10public class BreakpointRulerAction extends Action { 11 public BreakpointRulerAction( ITextEditor editor, IVerticalRulerInfo rulerInfo ) { 12 System.out.println(23); 13 } 14 15 public void run() { 16 System.out.println("run"); 17 } 18 19 public void runWithEvent(IAction action, Event event) { 20 System.out.println("runWithEvent"); 21 } 22} 23
RulerToggleBreakpointActionDelegateを使えというツッコミがあるかもしれませんが、
とりあえず本件ではデリゲート出来ない事に絞りたいです。
わかるかたがいましたらよろしくお願いします。
あなたの回答
tips
プレビュー