Personalizzazione del workbench

Il "punto di ingresso" per fornire il comportamento del workbench personalizzato è la designazione di un WorkbenchAdvisor per la configurazione del workbench. Il plugin rich client deve estendere questa classe astratta per fornire la configurazione specifica dell'applicazione per il workbench. Il browser di esempio effettua questa attività mediante la classe BrowserAdvisor.

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

Un advisor del workbench è responsabile della sostituzione dei metodi per configurare il workbench con il layout e le funzioni desiderate, ad esempio gli elementi della barra delle azioni o la pagina introduttiva.

Ciclo di vita del workbench

I metodi del ciclo di vita forniti dall'advisor del workbench consentono all'applicazione di agganciarsi alla creazione del workbench in qualsiasi momento e di influenzarne il comportamento. L'elenco di seguito riportato dei metodi del ciclo di vita dell'advisor che possono essere sostituiti deriva dal javadoc relativo a WorkbenchAdvisor.

Un'applicazione rich client esercita un largo controllo sul modo in cui il workbench è configurato ed implementato. Nel browser di esempio, la funzione principale di BrowserAdvisor è quella di configurare le barre di azione con elementi di menu appropriati per un browser. Questa operazione viene effettuata nel metodo fillActionBars:

	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 questo metodo, il workbench è configurato con un generatore di azioni specifico. Questo generatore viene utilizzato per inserire dati nelle barre di azione del workbench. Nella sezione Definizione delle azioni, viene illustrato nei dettagli il modo in cui le azioni sono specificate. In questa sezione, invece, viene illustrato come configurare il workbench.

Si osservi l'uso del metodo getWorkbenchConfigurer. I metodi IWorkbenchConfigurer e IWorkbenchWindowConfigurer sono utilizzati insieme al metodo WorkbenchAdvisor per personalizzare la finestra. Queste classi consentono di sostituire molti aspetti della creazione del workbench su livelli diversi. Ad esempio, il metodo IWorkbenchWindowConfigurer definisce il protocollo che presuppone una determinata configurazione di controlli nella finestra del workbench, ad esempio la barra di azione, la riga di stato, la barra della prospettiva, la barra cool e così via. Il protocollo consente di personalizzare e di inserire dati in questi elementi. Il metodo IWorkbenchConfigurer funziona ad un livello più elevato, consentendo di memorizzare i dati specifici dell'applicazione con il workbench. Il metodo WorkbenchAdvisor fornisce l'accesso a questi programmi di configurazione nei metodi del ciclo di vita riportati in alto. I metodi di livello inferiore presenti all'interno del metodo WorkbenchAdvisor, possono essere sovrascritti per sostituire completamente il comportamento predefinito. Ad esempio, l'advisor del workbench potrebbe sostituire il metodo che crea i controlli SWT nella finestra, per fornire un'implementazione completamente diversa per la finestra principale.

In altre parole, esistono diversi modi per personalizzare il workbench e diversi livelli in cui queste tecniche possono essere utilizzate. Il javadoc relativo a WorkbenchAdvisor, IWorkbenchConfigurere IWorkbenchWindowConfigurer include una descrizione completa del protocollo disponibile. Per i commenti sulle implementazioni alternative, fare riferimento anche all'implementazione completa di BrowserAdvisor.