Hallo,
ich möchte in meiner RCP-Anwendung nach einer Änderung bestimmter Präferenzen bei Bestätigung in der preference-page neu starten:
Das funktioniert soweit aber beim beenden der PreferencePage wird vermutlich noch auf die Workbench zugegriffen, die bereits geschlossen ist - NullPointer -
Es wird natürlich trotzdem beendet und wieder gestartet, aber das missfällt mir, ich fand jedoch bislang keinen Weg, den Neustart erst dann anzustoßen, wenn die PreferencePage vollständig beendet ist. So etwas wie PostWindowClosed().
Hintergrund: Mein Anwender muss sich im Splash-Screen gegenüber der Datenbank authentifizieren. Ist keine Verbindung zur Datenbank vorhanden, wird der Login-Screen geschlossen, das Hauptfenster nicht gezeigt und es erscheint dafür die PreferencePage in der der Anwender die Datenbankadresse, Port,... angeben kann. Ändert er dort die Datenbankadresse startet die Anwendung neu, verbindet sich zu der DB und zeigt den Login-Screen.
Jemand etwas vergleichbares schon gelöst?
Grüße
Thomas
ich möchte in meiner RCP-Anwendung nach einer Änderung bestimmter Präferenzen bei Bestätigung in der preference-page neu starten:
Java:
boolean performOk(){
super.performOk();
if(boolRestartNecessary){
PlatformUI.getWorkbench().restart();
}
return true;
}
Das funktioniert soweit aber beim beenden der PreferencePage wird vermutlich noch auf die Workbench zugegriffen, die bereits geschlossen ist - NullPointer -
Code:
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.close(FilteredPreferenceDialog.java:587)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.close(WorkbenchPreferenceDialog.java:140)
at org.eclipse.jface.preference.PreferenceDialog$13.run(PreferenceDialog.java:951)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
...
Hintergrund: Mein Anwender muss sich im Splash-Screen gegenüber der Datenbank authentifizieren. Ist keine Verbindung zur Datenbank vorhanden, wird der Login-Screen geschlossen, das Hauptfenster nicht gezeigt und es erscheint dafür die PreferencePage in der der Anwender die Datenbankadresse, Port,... angeben kann. Ändert er dort die Datenbankadresse startet die Anwendung neu, verbindet sich zu der DB und zeigt den Login-Screen.
Jemand etwas vergleichbares schon gelöst?
Grüße
Thomas
Zuletzt bearbeitet von einem Moderator: