Выполнить команду / обработчик существующего плагина из другого плагина - PullRequest
3 голосов
/ 12 марта 2012

У меня есть приложение RCP с существующей командой и обработчиком для программного переключения перспективы.А еще у меня есть и новый плагин, потребляемый существующим RCP-приложением.Я хочу, чтобы этот новый плагин выполнял команду / обработчик моего приложения RCP, что может быть возможным решением для этого?

Ответы [ 2 ]

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

Вам может потребоваться определить обработчик для этой команды (не уверен), но выполнение команд программно выглядит следующим образом:

Command command = ((ICommandService) getSite().getService(ICommandService.class)).getCommand(commandId);
...
final Event trigger = new Event();
ExecutionEvent executionEvent = ((IHandlerService) getSite().getService(IHandlerService.class)).createExecutionEvent(command, trigger);
command.executeWithChecks(executionEvent);
3 голосов
/ 13 марта 2012

Есть много способов выполнить команду.@Bela представил один - я обычно использую следующий код:

ICommandService commandService = (ICommandService) locationService.getService(ICommandService.class);
IHandlerService hs = (IHandlerService) locationService.getService(IHandlerService.class);

ParameterizedCommand pc = commandService.deserialize("<cmd-id>(<p-id>=<value>)");

hs.executeCommand(pc, null);

Преимущество этого метода заключается в том, что он позволяет добавлять параметры в команду - например, newWizardId из org.eclipse.ui.newWizard.

...