Eclipse关闭钩子能够停止终止

时间:2012-05-14 08:20:19

标签: eclipse-plugin

我正在使用插件。该插件执行外部工具,如果用户在进程运行时尝试退出Eclipse,则必须提供确认对话框。 有正在运行的进程。你真的想退出吗?如果用户点击,Eclipse可能不会终止。

我刚刚发现,如何挂钩退出命令清理思考。 (该插件的激活器具有stop()方法。)但Eclipse总是不可避免地终止。

1 个答案:

答案 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;
    }
}

就是这样。