0
基本插件定義了應用程序後來啓用或禁用或使(可見)的命令和處理程序。現在我試圖評估雙擊並需要訪問命令。這很簡單:獲取處理程序的可見性
private boolean executeCommand(String commandId) {
IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
try {
handlerService.executeCommand(commandId, null);
return true;
} catch (ExecutionException | NotDefinedException | NotEnabledException
| NotHandledException e) {
MessageUtil.logError(e);
return false;
}
}
現在的問題是:有兩個處理程序(「編輯」和「意見」),這是可能要執行,我想只執行「編輯」時,它的存在,否則「視圖」。
ICommandService commandService = (ICommandService) getSite().getService(ICommandService.class);
Command command = commandService.getCommand(commandId);
IHandler handler = command.getHandler();
我試着問命令isDefined()
,isEnabled()
和isHandled()
和isEnabled()
和isHandled()
處理程序,但一切都返回true。
如何找出處理程序是否可見?
我不明白爲什麼只執行命令是不夠的。這應該運行當前上下文有效的處理程序。 – 2014-09-25 12:24:57
@ greg-449因爲有兩個命令。如果第一個不包含處理程序(因爲它已停用),我需要調用第二個。 – 2014-09-25 12:37:04