2012-03-12 54 views
3

我有一個RCP應用程序,其中包含一個現有的命令和處理程序以編程方式切換透視圖。而且我還有現有的RCP應用程序使用新的插件。我想要這個新插件來執行我的RCP應用程序的命令/處理程序,可能的解決方案是什麼?從不同的插件執行現有插件的命令/處理程序

回答

4

您可能需要定義一個處理程序,該命令(不知道),但編程執行命令如下:

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

有許多方法來執行命令。 @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); 

這種方法的優點是主,它允許你參數添加到命令 - 例如org.eclipse.ui.newWizardnewWizardId