Eclipse Plugin - Как заставить последнего работать над редактором

Я пишу плагин Eclipse, который предоставляет вид для пользователя с несколькими кнопками. При нажатии на любую кнопку, я хотел бы вставить определенный комментарий в окно редактора, где пользователь в данный момент работает и в месте курсора, на который он указывает.

Когда пользователь нажимает кнопку, окно редактора больше не имеет фокуса, и следующий код не работает.

workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()

Как определить окно редактора, в котором работал пользователь, и местоположение курсора до того, как пользователь нажал кнопку?

1 ответ

Решение

Используйте IPartListener слушать события активации части.

Настройте слушателя в инициализации вашего представления:

getSite().getPage().addPartListener(partListener);

(и не забудьте удалить слушателя в представлении dispose).

Среди прочего это даст вам частичные события активации:

public void partActivated(IWorkbenchPart part)

Если part это пример IEditorPart тогда это активируемый редактор. Так что вам просто нужно следить за этим активированным редактором.

Другие вопросы по тегам