Tilpas arbejdsbænk

"Indgangspunktet" for angivelse af tilpasset arbejdsbænkfunktionalitet er designatoren af en WorkbenchAdvisor til brug for konfiguration af arbejdsbænken. Rich Client-plugin'en skal udvide denne abstract-klasse for at stille det programspecifikke konfiguration til rådighed for arbejdsbænken. Browser-eksemplet gør dette vha. BrowserAdvisor-klassen.

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

En arbejdsbænk-advisor har ansvaret for at tilsidesætte metoder for at konfigurere arbejdsbænken med det ønskede layout og de ønskede funktioner, f.eks. funktionslinjeelementer eller introduktionsside.

Arbejdsbænkens livscyklus

Livscyklusmetoder, som stilles til rådighed af arbejdsbænken, giver programmet mulighed for at hægte sig på oprettelsen af arbejdsbænken på et hvilket som helst tidspunkt og at have indflydelse på funktionaliteten. Følgende liste over livscyklusmetoder for advisor, som kan tilsidesættes, stammer fra javadoc for WorkbenchAdvisor.

Som du kan se, har et Rich Client-program meget kontrol over, hvordan arbejdsbænken er konfigureret og implementeret. I browsereksemplet er den primære funktion for BrowserAdvisor at konfigurere funktionslinjen med menupunkter, der er relevant for en browser. Det gøres i fillActionBars-metoden:

	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);
	}

I denne metode konfigureres arbejdsbænken med et specialiseret funktionsbygggeprogram. Dette funktionsbyggeprogram bruges til at fylde arbejdsbænkens funktionslinjer. I Definér funktioner gennemgås det, hvordan funktioner angives. Her fokuseres på konfiguration af arbejdsbænken.

Bemærk brugen af metoden getWorkbenchConfigurer() ovenfor. IWorkbenchConfigurer og IWorkbenchWindowConfigurer bruges sammen med WorkbenchAdvisor til at tilpasse vinduet. Med disse klasser kan du tilsidesætte mange aspekter af oprettelsen af arbejdsbænken på forskellige niveau. IWorkbenchWindowConfigurer definerer f.eks. protokol, der antager en bestemt konfiguration af kontroller på arbejdsbænkens vindue, f.eks. funktionslinje, statuslinje, perspektivlinje osv. Dens protokol giver dig mulighed for at tilpasse og udfylde disse elementer. IWorkbenchConfigurer fungerer på et højere niveau og giver dig mulighed for at gemme programspecifikke data sammen med arbejdsbænken. WorkbenchAdvisor giver adgang til disse konfigurationer i ovenstående livscyklusmetoder. Metoder på lavere niveau i WorkbenchAdvisor kan tilsidesættes for helt at erstatte standardfunktionalitet. Arbejdsbænk-advisoren kan f.eks. tilsidesætte den metode, der opretter SWT-kontrollerne i vinduet, for at stille en helt anden implementering til rådighed for hovedvinduet.

Med andre ord er der mange måder at tilpasse arbejdsbænken på, og der er flere niveauer, hvorpå disse teknikker kan bruges. Javadoc for WorkbenchAdvisor, IWorkbenchConfigurer og IWorkbenchWindowConfigurer indeholder en komplet beskrivelse af den tilgængelige protokol. Se også den komplette implementering af BrowserAdvisor for at læse kommentarer om alternative implementeringer.