Die Workbench anpassen

Der "Eingangspunkt" zur Anpassung des Workbench-Verhaltens ist die Bestimmung einer Advisorfunktion WorkbenchAdvisor, über die die Workbench konfiguriert wird. Ihr Rich Client-Plug-in sollte diese abstrakte Klasse erweitern, um eine anwendungsspezifische Konfiguration der Workbench zu ermöglichen. Das Browserbeispiel verwendet hierfür die Klasse BrowserAdvisor.

	...
	int code = PlatformUI.createAndRunWorkbench(display,
			new BrowserAdvisor());
	...

Aufgabe einer Workbench-Advisorfunktion ist es, Methoden zu überschreiben und so die Workbench mit dem gewünschten Layout und den benötigten Funktionen (z.B. die Aktionsleistenauswahlmöglichkeiten oder die Begrüßungsseite) zu konfigurieren.

Lebenszyklus einer Workbench

Über die von der Workbench-Advisorfunktion bereitgestellten Lebenszyklusmethoden kann sich Ihre Anwendung zu jedem Zeitpunkt der Workbench-Erstellung einklinken und das Verhalten beeinflussen. Die folgende Liste von überschreibbaren Lebenszyklusmethoden der Advisorfunktion ist der Javadoc-Datei für WorkbenchAdvisor entnommen.

Wie Sie sehen, hat eine Rich Client-Anwendung großen Einfluss auf Konfigurierung und Implementierung der Workbench. Im Browserbeispiel besteht die Hauptfunktion der Advisor-Funktion BrowserAdvisor darin, die Aktionsleisten mit Menüpunkten zu konfigurieren, die für einen Browser geeignet sind. Hierfür wird die Methode fillActionBars verwendet:

	public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
		...
		BrowserActionBuilder builder = new BrowserActionBuilder(window);
		getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); 
		builder.fillActionBars(configurer, flags);
	}

In dieser Methode wird die Workbench mit einem speziellen Aktionserstellungsprogramm konfiguriert. Dieses Aktionserstellungsprogramm wird verwendet, um die Aktionsleiste der Workbench auszufüllen. Die Details über die Bestimmung der Aktionen werden unter Aktionen definieren genauer betrachtet. An dieser Stelle soll der Schwerpunkt auf der Konfiguration der Workbench liegen.

Beachten Sie im obigen Beispiel die Verwendung der Methode getWorkbenchConfigurer(). IWorkbenchConfigurer und IWorkbenchWindowConfigurer werden zusammen mit der Advisor-Funktion WorkbenchAdvisor verwendet, um das Fenster anzupassen. Über diese Klassen können sie viele Aspekte der Workbench-Erstellung auf verschiedenen Ebenen überschreiben. So definiert zum Beispiel IWorkbenchWindowConfigurer ein Protokoll, das eine bestimmte Konfiguration von Steuerelementen im Workbench-Fenster voraussetzt, z.B. eine Aktionsleiste, eine Statuszeile, eine Perspektivenleiste, Cool-Leiste, etc. Dieses Protokoll ermöglicht Ihnen die Anpassung und Auffüllung dieser Elemente. IWorkbenchConfigurer ist auf einer höheren Ebene aktiv und ermöglicht Ihnen die Speicherung anwendungsspezifischer Daten bei der Workbench. Die Advisor-Funktion WorkbenchAdvisor bietet in den oben dargestellten Lebenszyklusmethoden Zugriff auf diese Konfigurationsfunktionen. Methoden, die sich innerhalb von WorkbenchAdvisor auf niedrigeren Ebenen befinden, können überschrieben werden, um das Standardverhalten vollständig zu ersetzen. Die Advisor-Funktion Ihrer Workbench könnte beispielsweise die Methode überschreiben, die im Fenster die SWT-Steuerelemente erstellt, so dass das Hauptfenster völlig anders implementiert wird.

In anderen Worten: es gibt viele Möglichkeiten, die Workbench anzupassen, und viele verschiedene Ebenen, auf denen diese Verfahren verwendet werden können. Die Javadoc-Dateien für WorkbenchAdvisor, IWorkbenchConfigurer und IWorkbenchWindowConfigurer enthalten eine vollständige Beschreibung der verfügbaren Protokolle. Kommentare über alternative Implementierungen finden Sie auch in der vollständigen Implementierung von BrowserAdvisor.