我正在开发一个插件。该插件执行外部工具,如果用户在进程正在运行时尝试退出 Eclipse,我必须提供一个确认对话框。有正在运行的进程。你真的想退出吗?如果用户点击No,Eclipse 可能不会终止。
我刚刚发现,如何挂钩退出命令来清理思考。 (该插件的激活器有stop()
方法。)但是 Eclipse 总是会不可避免地终止。
一位同事帮我解决了这个问题。解决办法其实很简单。我所需要的只是在激活器中注册的 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;
}
}
就这样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)