Я пытаюсь показать всплывающее диалоговое окно в позиции текстового курсора редактора. Как я могу получить позицию текстового курсора в пикселях активного редактора (Point) и показать всплывающее диалоговое окно в этот момент?
Eclipse-плагин, как получить текущую позицию курсора текстового редактора
Ответы (2)
Я не совсем уверен, что вы имеете в виду под «показать всплывающее диалоговое окно в этот момент», но сделайте что-то вроде этого:
IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor instanceof ITextEditor) {
ISelectionProvider selectionProvider = ((ITextEditor)editor).getSelectionProvider();
ISelection selection = selectionProvider.getSelection();
if (selection instanceof ITextSelection) {
ITextSelection textSelection = (ITextSelection)selection;
int offset = textSelection.getOffset(); // etc.
}
}
Конечно, в производственном коде выполняются нулевые проверки и т.д.
person
thSoft
schedule
11.02.2010
Мне нужна точка (X, Y) (в пикселях), чтобы показать всплывающее диалоговое окно, и я хочу показать его под текстовым курсором, как всплывающее окно завершения кода. В вашем коде вы получаете смещение текста в символах, как преобразовать это смещение в точку в пикселях. Или может быть существует другой способ показать всплывающее окно под текстовым курсором?
- person ; 11.02.2010
Вы можете использовать метод getCursorPosition()
из AbstractTextEditor
person
Alexandre Pauzies
schedule
12.11.2009
Но этот метод защищен. Как можно вызвать его?
- person Lii; 24.04.2013
Он не только защищен, но и возвращает строковое описание позиции курсора, а это совсем не то, о чем просил OP.
- person Amos M. Carpenter; 22.04.2016