Eclipse rcp 更改命令ID默认处理程序

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该处理程序作为该命令的

我需要更改命令id的默认处理程序。例如,RestartWorkbenchHandler的命令id是org.eclipse.ui.file.restart。因此,当我们给出命令org.eclipse.ui.file.restart时,它将调用RestartWorkbenchHandler。 现在,我想限制不调用RestartWorkbenchHandler,而应该在我给出org.eclipse.ui.file.restart时调用我自己的处理程序。我该怎么做

谢谢
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());