我正在使用插件。该插件执行外部工具,如果用户在进程运行时尝试退出Eclipse,则必须提供确认对话框。 有正在运行的进程。你真的想退出吗?如果用户点击否,Eclipse可能不会终止。
我刚刚发现,如何挂钩退出命令清理思考。 (该插件的激活器具有stop()
方法。)但Eclipse总是不可避免地终止。
答案 0 :(得分:1)
一位同事帮我解决了这个问题。解决方案实际上很简单。我需要的只是在激活器中注册的worgbench监听器。听众有两种方法用于事件前后关闭。第一个返回布尔值。如果它返回true,则Eclipse退出。否则退出程序会中断,用户可以继续工作。
在激活类中:
public void start(BundleContext context) {
...
IWorkbench iwb = PlatformUI.getWorkbench();
WBListener wbl = new ...;
iwb.addWorkbenchListener(wbl);
...
}
班级WBListener
的代码:
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchListener;
public class WBListener implements IWorkbenchListener {
@Override
public void postShutdown(IWorkbench w) {
}
@Override
public boolean preShutdown(IWorkbench w, boolean b) {
boolean exitEclipse = ...; //get it somehow
return exitEclipse;
}
}
就是这样。