Eclipse Plugin - Как заставить последнего работать над редактором
Я пишу плагин Eclipse, который предоставляет вид для пользователя с несколькими кнопками. При нажатии на любую кнопку, я хотел бы вставить определенный комментарий в окно редактора, где пользователь в данный момент работает и в месте курсора, на который он указывает.
Когда пользователь нажимает кнопку, окно редактора больше не имеет фокуса, и следующий код не работает.
workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()
Как определить окно редактора, в котором работал пользователь, и местоположение курсора до того, как пользователь нажал кнопку?
1 ответ
Используйте IPartListener
слушать события активации части.
Настройте слушателя в инициализации вашего представления:
getSite().getPage().addPartListener(partListener);
(и не забудьте удалить слушателя в представлении dispose).
Среди прочего это даст вам частичные события активации:
public void partActivated(IWorkbenchPart part)
Если part
это пример IEditorPart
тогда это активируемый редактор. Так что вам просто нужно следить за этим активированным редактором.