我需要更改命令id的处理程序。例如,ResetPerspectiveHandler的命令id是org.eclipse.ui.window.ResetPerspective。所以当我们给出命令是org.eclipse.ui.window.ResetPerspective时它会调用ResetPerspectiveHandler。现在我想限制不调用ResetPerspectiveHandler,而是在我给org.eclipse.ui.window.ResetPerspective时调用我自己的Handler。我该怎么做?
答案 0 :(得分:0)
您无法覆盖现有的命令处理程序。
您可以使用IExecutionListener
侦听正在使用ICommandService
执行的命令。在执行命令之前和之后通知侦听器。
ICommandService commandService = PlatformUI.getWorkbench().getAdapter(ICommandService.class);
commandService.addExecutionListener(listener);
您还可以使用以下方式收听特定命令:
Command command = commandService.getCommand("command id");
command.addExecutionListener(listener);