Eclipse RCP 4 - параметры метода обработчика
В настоящее время я смотрю на новую платформу Eclipse RCP и у меня есть вопросы по поводу обработчиков. В RCP 3.x a класс-обработчик должен был реализовывать интерфейс, поэтому методы были заданы. В RCP 4 классу обработчика не требуется реализовывать интерфейс. Вместо этого вы аннотируете методы. Например, если у вас есть ExitHandler
как в учебнике Vogellas у вас есть @Execute
аннотаций. Как видите, есть IWorkbench
параметр передан.
package com.example.e4.rcp.todo.handler;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.workbench.IWorkbench;
public class ExitHandler {
@Execute
public void execute(IWorkbench workbench) {
workbench.close();
}
}
Теперь у меня вопрос: как узнать, какие параметры передаются при использовании определенных аннотаций? Как я узнаю в этом конкретном случае, что я получаю IWorkbench
объект, а не объект Window или что-то? На самом деле я могу аннотировать метод без параметра, и он все равно будет выполнен.
Где-нибудь есть документация? Инструменты Eclipse e4, похоже, тоже меня там не поддерживают...
1 ответ
Аннотация @Execute
не определяет тип для внедрения, объявление метода делает.
В качестве аннотации поведения, @Execute
отмечает метод, который должен быть вызван при выполнении обработчика. Тип объекта, который нужно внедрить, определяется аргументами метода. Чтобы добавить другой тип объекта, измените аргумент метода, например
@Execute
public void execute(MWindow window) {
// method body
}
ввести MWindow
из активного контекста.
@Execute
аннотация содержит @Inject
аннотации, поэтому, когда событие инициируется, и обработчик будет выполняться, происходит следующее:
- каркас ищет метод, отмеченный
@Execute
аннотирование - в контексте E4 ищется объект типа аргумента метода (например,
IWorkbench
) - объект вводится и метод выполняется
Если только @Optional
устанавливается аннотация, генерируется исключение, если в контексте не найдено ни одного объекта.
Для дальнейшего чтения и более подробных объяснений см. Учебное пособие по Eclipse 4 (e4), Часть 4 - Основы внедрения зависимостей и Учебное пособие по Eclipse 4 (e4), Часть 6: Аннотации поведения.
Обзор аннотаций Eclipse 4 можно найти в Eclipse 4 Wiki.