更改命令 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);
我需要更改命令 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);