即處理程序作爲該命令的默認處理(優先級== 0)提供。但是,AFAIK的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>
或者你可以簡單地在你ActionBarAdvisor
同時使傳統的動作註冊另一個處理程序:
IHandlerService srv = (IHandlerService) window.getService(IHandlerService.class);
srv.activateHandler(IWorkbenchCommandConstants.FILE_RESTART, new YourRestartHandler());
嗨保羅感謝information.I想問你一個問題。我的項目,它不是rcp應用程序。它是eclipe工作臺應用程序。在那種情況下,我該怎麼做?我如何添加您提供的代碼? – user414967 2011-06-08 13:26:05
在IDE 1)你最好不要殺我的**文件>重新啓動** :-)和2),你將不得不使用plugin.xml的方法,因爲你不提供'ActionBarAdvisor' – 2011-06-08 13:31:44
那裏,我們需要在重新啓動之前添加一個確認消息框。這是要求。 – user414967 2011-06-08 13:38:18