Kontrolliertes Beenden einer Application

Status
Nicht offen für weitere Antworten.

dzim

Top Contributor
Ok, der Titel mag jetzt vielleicht ein wenig irreführen, daher hier meine Erklärung:
Ich lasse über einen SplashHandler (siehe http://www.java-forum.org/plattformprogrammierung/91965-preferences.html ) einen Dialog öffnen. Drückt man im Dialog "Cancel" soll die Anwendung geschlossen werden.

Klar könnte ich jetzt System.exit(0); oder so aufrufen, aber ist das nicht etwas zu heftig? Gibt es da noch einen anderen Weg, oder ist das der Einzige?
 

Koringar

Bekanntes Mitglied
Hi,

wenn du die Komplette Anwendung beenden willst gibt es auch über die PlatformUI:
Code:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().close();
 

dzim

Top Contributor
Ah ok, das war das was ich suchte!

ich musste es nur noch minimal anpassen:
Code:
PlatformUI.getWorkbench().close();

Zur Splash-Screen-Zeit existiert augenscheinlich noch kein ActiveWorkbenchWindow - das führt dann nur zu einer NPE.
Mit o.g. Anweisung beendet sich das Programm dann.

edit: Es gibt immer noch eine NPE... Ich war wohl zu voreilig! Mist!
 
Zuletzt bearbeitet:

dzim

Top Contributor
Ähm - zur Splash-Screen-Zeit!?

Es gibt doch den ExtensionPoint org.eclipse.ui.splashHandlers um eigenes Verhalten in den SplashScreen zu legen (Login, etc.) und da man dort eine Shell bekommt, kann man auch Dialoge öffnen (siehe Eclipse: Workspace-Auswahl-Dialog, der - solange man es zulässt - immer kommt, wenn man Eclipse startet - und zwar, wenn der Splash-Screen angezeigt wird und noch *bevor* eine Workbench angelegt wird).
 

dzim

Top Contributor
Ok - Kreuzigt und Steinigt mich meinetwegen, aber ich hab es jetzt genau wie die Eclipse-Entwickler gemacht:
Ich nutze keinen splashHandler mehr, sondern mache meinen Mist programmatisch in der Application-Klasse im start - ich gebe einfach beim Druck auf "Cancel" IApplication.EXIT_OK zurück und die Anwendung beendet sich...

Ich versteh aber nicht, das es da keinen vernünfitgen Weg über die Platform gibt - in der Form macht doch der SplashHandler dann fast keinen Sinn, wenn man so etwas wie ich umsetzen möchte...

BTW: Meine Start-Methode in der App sieht jetzt wie folgt aus
Java:
public Object start(IApplicationContext context) {
	Display display = PlatformUI.createDisplay();
	try {
		if (SSDToolUtils.isShowWorkspaceSelectionDialog()) {	// lookup for the preferences
			OpenSSDToolWorkpaceDialog dialog = new OpenSSDToolWorkpaceDialog(
					display.getActiveShell());				// my dialog, shown during startup

			if (dialog.open() == TitleAreaDialog.CANCEL) {
				return IApplication.EXIT_OK;				// on cancel, exit application
			}
		}

		// original generated code
		int returnCode = PlatformUI.createAndRunWorkbench(display,
				new ApplicationWorkbenchAdvisor());
		if (returnCode == PlatformUI.RETURN_RESTART) {
			return IApplication.EXIT_RESTART;
		}
		return IApplication.EXIT_OK;
	} finally {
		display.dispose();
	}
}
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Thread beenden Plattformprogrammierung 14
P Per Button einen RMI Server starten bzw. beenden Plattformprogrammierung 9
K Problem bei Einbinden einer DLL in Java-Projekt Plattformprogrammierung 4
D IPerspectiveFactory in einer e4 application Plattformprogrammierung 2
B Entwicklung einer Webplattform Plattformprogrammierung 1
maestr0 WorkingSets mit Komma getrennt in einer ComboBox anzeigen lassen Plattformprogrammierung 2
dzim Migration einer bestehenden Applikation nach e4 Plattformprogrammierung 11
Mike90 Error beim Öffnen einer RCP-App Plattformprogrammierung 2
W SWTException beim Schließen einer ViewPart Plattformprogrammierung 13
dzim RCP Überführen einer RCP-Anwendung nach RAP Plattformprogrammierung 11
X Teile einer p2 UpdateSite mit b3 aggregator spiegeln Plattformprogrammierung 4
S RCP name einer view ändern Plattformprogrammierung 2
Mike90 RCP 2Views und einer davon als Placeholder Plattformprogrammierung 4
T Expression Definitions in einer RCP Plattformprogrammierung 3
L RCP Canvas in einer View? Plattformprogrammierung 4
M Eclipse RCP: überflüssige Icons in einer Toolbar Plattformprogrammierung 6
F Eclipse Plugin - Rückgabewert einer Methode Plattformprogrammierung 4
S In einem Plugin main einer anderen Klasse aufrufen Plattformprogrammierung 18
C RCP: Veraenderungen innerhalb einer View per Extension?! Plattformprogrammierung 7
K TextFeld in einer ToolBar Plattformprogrammierung 2
K Position einer Multiple View speichern Plattformprogrammierung 6
dzim Implementieren einer Help-Seite Plattformprogrammierung 18
S Literatur: Kennt einer ein gutes RCP Buch Plattformprogrammierung 13
R SWT: nur eine Instanz einer View erlauben Plattformprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben