更改命令 ID 处理程序

change the command ids handler

我需要更改命令 ID 的处理程序。例如 ResetPerspectiveHandler 的命令 id 是 org.eclipse.ui.window.ResetPerspective。所以当我们给出的命令是org.eclipse.ui.window.ResetPerspective时它会调用ResetPerspectiveHandler。现在我想限制不调用 ResetPerspectiveHandler,而是在我给出 org.eclipse.ui.window.ResetPerspective 时它应该调用我自己的处理程序。我该怎么做?

您不能覆盖现有的命令处理程序。

您可以使用 IExecutionListener 来监听正在使用 ICommandService 执行的命令。命令执行前后都会通知监听器

ICommandService commandService = PlatformUI.getWorkbench().getAdapter(ICommandService.class);

commandService.addExecutionListener(listener);

您还可以使用以下方式收听特定命令:

Command command = commandService.getCommand("command id");

command.addExecutionListener(listener);