Получение параметра параметризованной команды в Eclipse RCP 4.2 - PullRequest
2 голосов
/ 24 марта 2012

В Eclipse 3.7 мы могли бы сделать это:

public class HelloName extends AbstractHandler {

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        String name = event
                .getParameter("de.vogella.rcp.commands.parameterfirst.commandParameter1");
        MessageDialog.openInformation(HandlerUtil.getActiveShell(event),
                "Hello", "Hello " + name);
        return null;
    }
}

В Eclipse 4.2 я сделал этот обработчик, и я хочу, чтобы в качестве параметра был указан идентификатор детали для findPart (), но откуда я могу получить параметр?

public class FocusHandler {

    @Execute
    public void execute(EPartService partService) {
        MPart part = partService.findPart("nl.rh.parts.inbox");
        partService.activate(part, true);
    }
}

1 Ответ

4 голосов
/ 25 марта 2012

Я нашел ответ на свой вопрос.Ключ должен использовать аннотацию @Named с внедрением зависимости.

@Execute
public void execute(EPartService partService, @Optional @Named("nl.rh.focusCommand.part") String partName) {
    MPart part = partService.findPart(partName);
    partService.activate(part, true);
}

Аннотации @Named должен быть присвоен идентификатор параметра команды.

...