Il workbench fornisce una vasta serie di classi e interfacce per creare interfacce utente complesse. Fortunatamente, per cominciare a utilizzarle, non è necessario conoscerle tutte. In questa sezione, saranno innanzitutto analizzati alcuni concetti esposti nell'interfaccia utente del workbench e la corrispondente struttura sottostante.
Il termine workbench indica comunemente "la finestra che si apre all'avvio della piattaforma." Di seguito sono illustrati alcuni dei componenti visivi da cui è costituito.
Nel resto della trattazione, con il termine workbench sarà indicata esclusivamente la finestra di workbench IWorkbenchWindow. La finestra di workbench è la finestra che viene visualizzata in primo piano in un workbench. Costituisce il frame, all'interno del quale vengono posizionate barra dei menu e degli strumenti, barra di stato, barra di scelta rapida e pagine. Generalmente, la finestra di workbench non richiede alcuna programmazione ed è rilevante solo per il suo contenuto.
Nota: è possibile aprire finestre multiple di un workbench; tuttavia, poiché ogni finestra del workbench rappresenta un mondo indipendente di editor e visualizzazioni, è possibile concentrarsi su una soltanto di esse.
Dal punto di vista dell'utente, un workbench contiene visualizzazioni ed editor. Altre classi contribuiscono all'implementazione della finestra del workbench.
All'interno della finestra del workbench è possibile trovare una pagina IWorkbenchPage, contenente a sua volta delle parti. Le pagine rappresentano il meccanismo attraverso il quale vengono implementate associazioni di parti. Generalmente non è necessario programmare la pagina, tuttavia, essa sarà visibile nel contesto della programmazione e del debug.
Visualizzazioni ed editor costituiscono le opzioni di implementazione di alcune comuni programmazioni plug-in. Quando viene aggiunto un componente visivo al workbench, è necessario decidere se si desidera implementare una visualizzazione o un editor. In base a quali considerazioni, viene effettuata la scelta?
Visualizzazione ed editor devono essere, comunque, entrambi creati secondo un ciclo di vita standard.
Durante tutto questo ciclo di vita, gli eventi notificheranno, dalla pagina del workbench in cui sono contenuti, alle parti interessate l'apertura, attivazione, disattivazione e chiusura delle visualizzazioni ed editor.
Come si vede, visualizzazioni ed editor del workbench sono molto semplici. Contengono semplicemente i widget e, a seconda delle esigenze dell'utente, possono risultare semplici o complessi. La visualizzazione più semplice è stata illustrata in precedenza nell'esempio Hello World. E bene riprenderlo in esame ora che l'argomento è stato ulteriormente approfondito.
package org.eclipse.examples.helloworld; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart; public class HelloWorldView extends ViewPart { Label label; public HelloWorldView() { } public void createPartControl(Composite parent) { label = new Label(parent, SWT.WRAP); label.setText("Hello World"); } public void setFocus() { // impostare come attivo il widget. Per un'etichetta, ciò non // è significativo, ma per insiemi più complessi di widget // è necessario decidere a quale widget assegnare lo stato attivo. } }
Si osservi che non è stato necessario implementare alcun metodo dispose(), visto che è stata soltanto creata un'etichetta nel metodo createPartControl(principale). Qualsiasi risorsa dell'interfaccia utente allocata, come immagini o tipi di carattere, avrebbe dovuto essere eliminata in questo punto. Poiché è stata estesa la classe ViewPart, è stata ereditata l'implementazione di dispose(), "do nothing".