In meiner View (ViewPart) habe ich eine asynchron laufende Methode (10mal per sekunde, alle 100 ms). Beim Schließen des Haupfensters (Eclipse) kann ich die SWTException verhindern mit
!Display.getCurrent().isDisposed() bzw.
!PlatformUI.getWorkbench().isClosing()
Wenn ich aber die ViewPart selbst schließe (mausklick auf [x] des Reiters der View), bekomme ich immer eine SWTException.
Wie kann ich der 'timerToRefreshButtonEnabled' mitteilen, dass die ViewPart geschlossen wurde?
!Display.getCurrent().isDisposed() bzw.
!PlatformUI.getWorkbench().isClosing()
Wenn ich aber die ViewPart selbst schließe (mausklick auf [x] des Reiters der View), bekomme ich immer eine SWTException.
Wie kann ich der 'timerToRefreshButtonEnabled' mitteilen, dass die ViewPart geschlossen wurde?
Java:
//start it
Display.getDefault().asyncExec(this.timerToRefreshButtonEnabled);
....
private final Runnable timerToRefreshButtonEnabled = new Runnable() {
public void run() {
if (!Display.getCurrent().isDisposed() && !PlatformUI.getWorkbench().isClosing()
&& (MyViewPartClass.this != null)
) {
if (Eclipse.getSelectedText().trim().equals("")) {
...
}
else {
...
}
//Wiederhole alle 100 millis
Display.getCurrent().timerExec(100, this);
}
}
};