Startreihenfolge einer RCP Anwendung

ScoopDTN

Grünschnabel
Hallo an alle,

ich hab eine Frage und zwar habe ich bei meiner RCP Anwendung einen Splashscreen. Nachdem dieser Splashscreen geladen ist, würde ich gerne bevor das Hauptfenster erscheint einen Logindialog öffnen. Wenn dieser Logindialog erfolgreich ausgefüllt wird, sollte sich meine Hauptfenster öffnen. So jetzt meine Frage. Wo kann ich die Startreihenfolge definieren. Es gibt ja bei der RCP Anwendung die Klasse Application mit der Methode start(). Kann ich diese Methode irgendwie so umschreiben das er nach meinen Splashscreen erst meinen Logindialog öffnet und dann das Hauptfenster? Wenn ja wie?

Meine Application Klasse schaut momentan noch default mäßig so aus:
Code:
package de.tesis.tsp.console;

import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;

import de.tesis.tsp.console.dialogs.TspConsoleLoginDialog;

/**
 * This class controls all aspects of the application's execution
 */
public class Application implements IApplication {

	/*
	 * (non-Javadoc)
	 * 
	 * @seeorg.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.
	 * IApplicationContext)
	 */
	public Object start(final IApplicationContext context) {
		final Display display = PlatformUI.createDisplay();
		try {
			
				final int returnCode = PlatformUI.createAndRunWorkbench(
						display, new ApplicationWorkbenchAdvisor());
						
				if (returnCode == PlatformUI.RETURN_RESTART) {
					return IApplication.EXIT_RESTART;
				}
			

			return IApplication.EXIT_OK;
		} finally {
			display.dispose();
		}
	}



	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.equinox.app.IApplication#stop()
	 */
	public void stop() {
		final IWorkbench workbench = PlatformUI.getWorkbench();
		if (workbench == null) {
			return;
		}
		final Display display = workbench.getDisplay();
		display.syncExec(new Runnable() {
			public void run() {
				if (!display.isDisposed()) {
					workbench.close();
				}
			}
		});
	}

}

Vielen Dank für die Hilfe....

Gruß Scoop
 
Hallo,

zeig doch einfach bevor du createAndRunWorkbench(...) deine LoginShell an... wenn dort korrekte Anmeldedaten eingegeben werden fährst du einfach mit createAndRunWorkbench(...) fort.

Gruß Tom
 
Das Problem ist bloß wenn ich es so machen wird ein Teil des Splashscreen geladen und danach kommt mein Loginfenster und dann lädt der Splashscreen weiter. Mir wäre es am liebsten wenn ich es so machen könnte das der Splashscreen komplett lädt dann das Login Fenster kommt und dann die eigentlich Hauptseite.
Würde so gehen oder ist das eher schlecht um zusetzen.

Während des Splashscreen lädt er ja die ganzen Sachen und das Hauptfenster darzustellen oder?

Aber aufjedenfall danke für die Antwort.

Gruß
Scoop
 
Zurück