Aufbau einer RCP-Anwendung
Applikationen
Das Plug-in org.eclipse.core.runtime stellt die Laufzeit-Infrastruktur für Eclipse-Anwendungen bereit. Der Eintrittspunkt in eine RCP-Applikation ist die Applikationsklasse, die über den Extension Point org.eclipse.core.runtime.applications registriert wird:
<extension id="someapp" point="org.eclipse.core.runtime.applications">
<application>
<run class="com.example.SomeRcpApplication"/>
</application>
</extension>
Die Applikationsklasse muss das Interface IApplication implementieren und ist für den Start und das Beenden der Applikation zuständig:
public interface IApplication {
public Object start(IApplicationContext context) throws Exception;
public void stop();
}
Das Plug-in org.eclipse.ui stellt mit der Eclipse Workbench den grafischen Rahmen für Eclipse RCP-Anwendungen bereit. Eclipse-RCP Anwendungen lösen daher in Ihrer start-Methode den Start der Workbench aus. Dieser wird von einer sog. Advisor-Klasse begleitet, die die Workbench gemäß den Wünschen der Applikation konfiguriert. Die Initialisierung der Workbench erfolgt in der Applikationsklasse mit folgendem Code:
public class SomeRcpApplication implements IApplication {
public Object start(IApplicationContext context) throws Exception {
Display display = PlatformUI.createDisplay();
try {
// WorkbenchAdvisor zur Konfiguration der Workbench erstellen
WorkbenchAdvisor advisor = new ApplicationWorkbenchAdvisor();
// Eclipse Workbench starten
// createAndRunWorkbench blockiert bis zum Beenden der Workbench
int returnCode = PlatformUI.createAndRunWorkbench(display, advisor);
// Workbench kann einen Neustart der Anwendung verlangen
if (returnCode == PlatformUI.RETURN_RESTART)
return IApplication.EXIT_RESTART;
else
return IApplication.EXIT_OK;
} finally {
display.dispose();
}
}
}
Zum Start der Applikation wird eine spezielle Startkonfiguration Eclipse Application verwendet. In der Startkonfiguration werden analog zum Start eines OSGi-Containers die zu startenden Plug-ins angegeben und die zu startende Applikation ausgewählt:
Laufzeit-Optionen
Beim Start der Anwendung können Sie unter Arguments > Program arguments Laufzeitoptionen für die Eclipse-Anwendung angeben. Standardmäßig wird immer die Plattform und Sprache der Testumgebung über Umgebungsvariablen definiert:
-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}
Praktisch ist vor allem die Option:
-consoleLog
Damit bewirken Sie, dass alle Meldungen und Exceptions der Eclipse-Anwendung auch auf der System-Konsole ausgegeben werden.
Eine vollständige Aufzählung aller Laufzeit-Optionen finden Sie in der Eclipse-Hilfe unter Platform Plug-in Developer Guide > Reference > Other reference information > Runtime options.
Fehlersuche, Log-Datei der Eclipse-Anwendung
Alle Meldungen der Eclipse-Komponenten werden in einer Logdatei der Anwendung abgelegt. Neben der Ausgabe auf der Systemkonsole erreichen Sie sie in der IDE über Window > Show View > Error Log. Standardmäßig werden die Meldungen der IDE-Anwendung angezeigt - Sie können jedoch zum Error Log Ihrer Anwendung wechseln:



Das versteh ich nicht:
} finally {
// Dispose SWT display after application was quit
display.dispose();
}
In start(IApplicationContext context)
wird doch nix gestoppt, oder?