1人の同僚が問題の解決に手伝ってくれました。このソリューションは実際には簡単です。私が必要とするのは、アクティベータに登録されたworgbenchリスナーだけです。リスナーには、イベントの前後の2つのメソッドがあります。最初のものはブール値を返します。 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;
}
}
。