質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Eclipse Plugin

Eclipseは、IBMによって開発された統合開発環境 (IDE) の一つです。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応しています。Eclipse-Pluginを使う事でIDEの拡張を行う事が可能です。

Q&A

0回答

1544閲覧

eclipseプラグインで左ルーラーをダブルクリックしたときのイベントを取りたい

benzo

総合スコア35

Eclipse Plugin

Eclipseは、IBMによって開発された統合開発環境 (IDE) の一つです。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応しています。Eclipse-Pluginを使う事でIDEの拡張を行う事が可能です。

0グッド

0クリップ

投稿2016/02/24 04:38

オリジナルのコードを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を使えというツッコミがあるかもしれませんが、
とりあえず本件ではデリゲート出来ない事に絞りたいです。

わかるかたがいましたらよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問