Eclipse rcp 更改命令ID默认处理程序
我需要更改命令id的默认处理程序。例如,RestartWorkbenchHandler的命令id是org.eclipse.ui.file.restart。因此,当我们给出命令org.eclipse.ui.file.restart时,它将调用RestartWorkbenchHandler。 现在,我想限制不调用RestartWorkbenchHandler,而应该在我给出org.eclipse.ui.file.restart时调用我自己的处理程序。我该怎么做 谢谢Eclipse rcp 更改命令ID默认处理程序,eclipse-rcp,Eclipse Rcp,我需要更改命令id的默认处理程序。例如,RestartWorkbenchHandler的命令id是org.eclipse.ui.file.restart。因此,当我们给出命令org.eclipse.ui.file.restart时,它将调用RestartWorkbenchHandler。 现在,我想限制不调用RestartWorkbenchHandler,而应该在我给出org.eclipse.ui.file.restart时调用我自己的处理程序。我该怎么做 谢谢 Bhanu该处理程序作为该命令的
Bhanu该处理程序作为该命令的默认处理程序(优先级==0)提供。不过,好的,ID是org.eclipse.ui.file.restartWorkbench 您可以通过提供另一个具有更高优先级的处理程序来覆盖它。您可以使用
org.eclipse.ui.handlers
:
<handler class="org.example.YourResetHandler"
commandId="org.eclipse.ui.file.restartWorkbench">
<activeWhen>
<with variable="activeWorkbenchWindow">
<instanceof value="org.eclipse.ui.IWorkbenchWindow"/>
</with>
</activeWhen>
</handler>
嗨,保罗,谢谢你提供的信息。我想再问你一个问题。我的项目,它不是rcp应用程序。它是eclipe工作台应用程序。那样的话,我该怎么做?如何添加您提供的代码?在IDE中1)您最好不要杀死我的文件>重新启动:-)和2)您必须使用plugin.xml方法,因为您没有提供
ActionBarAdvisor
在重新启动之前,我们需要添加一个确认消息框。这是要求。
IHandlerService srv = (IHandlerService) window.getService(IHandlerService.class);
srv.activateHandler(IWorkbenchCommandConstants.FILE_RESTART, new YourRestartHandler());