2016-11-22 12 views
0

私は、Eclipseプラグイン開発環境(PDE)を使用してコードを推奨するプラグインを開発しています。今のところ私はインターフェイスの設計に取り組んでいます。私は、Eclipseのエディタでカーソルの位置を取得し、その位置にJFrameを開くことです。私はドキュメンテーションやフォーラムの助けを借りて位置を取得しようとしましたが、今までオフセットを取得することしかできなかったり、ラインとカラムのオフセットを言うことができます。私は場所を表す点(x、y)に入れたい。どのようにカーソルの位置を取得するためにどのようなアイデアですか?Eclipseテキストエディタのカーソル位置を取得

+0

あなたが何をしようとしましたの?。 –

+0

あなたは既にどのオブジェクトにアクセスしていますか?エディターだけ?見る人?メインテキストウィジェットです – nitind

+0

私はリンクの答えから次のコードを試してみましたが、それは私にオフセットを与えるだけです。 http://stackoverflow.com/questions/1619623/eclipse-plugin-how-to-get-current-text-editor-corsor-position –

答えて

1

あなたはキャレットがオフセット取得するためのエディタを使用getCaretOffsetためStyledTextコントロールを持っていると仮定すると:

StyledText text = ... get editor styled text 

int caret = text.getCaretOffset(); 

その後、Xを取得するために、コントロールへの相対オフセットのy座標をgetLocationAtOffsetを呼び出す:

Point point = text.getLocationAtOffset(caret); 

必要に応じて、ディスプレイに合わせてこれを変換することができます。

point = text.toDisplay(point); 

Eclipseプラグインは通常、SwingではなくSWTを使用することに注意してください。 SWTコントロールよりもJFrameを開くのがずっと難しくなります。

あなたは使用してITextEditorためStyledTextを取得することができます。

StyledText text = (StyledText)editor.getAdapter(Control.class); 
+0

私は上記のようにPointのeclipseのエディタからキャレットの位置を取得したいスタイル付きテキストから。 –

+0

Eclipseテキストエディタは、テキストにStyledTextを使用します。 –

+0

IEditorPart editor = PlatformUI.getWorkbench()。getActiveWorkbenchWindow()。getActivePage()。getActiveEditor(); \t \t IF(ITextEditor instanceofのエディタ){ \t \t ISelectionProvider selectionProvider =((ITextEditor)編集).getSelectionProvider(); \t \t ISelection selection = selectionProvider.getSelection(); \t \t if(ITextSelectionの選択インスタンス){ \t \t \t ITextSelection textSelection; =(ITextSelection)selection; \t \t offset = textSelection.getOffset(); \t \t \t } –

関連する問題