org.eclipse.ui.perspectives

Sono già state illustrate alcune modalità con cui è possibile controllare sul workbench l'aspetto della funzionalità di un plug-in. È possibile nascondere o mostrare le visualizzazioni mediante il menu Prospettiva->Mostra visualizzazione. È possibile nascondere o mostrare le serie di azioni mediante il menu Prospettiva->Personalizza.... Queste funzioni consentono all'utente di organizzare il workbench con precisione.

Prospettive

Le prospettive forniscono un ulteriore layer di organizzazione. Gli utenti possono passare da una prospettiva all'altra mentre si spostano tra le attività. Una prospettiva definisce un insieme iniziale e un layout della visualizzazione che verrà utilizzata quando l'utente passerà per la prima volta ad essa. Essa definisce, inoltre, l'iniziale serie di azioni visibili.

La piattaforma definisce una prospettiva, Risorsa. Altri plug-in della piattaforma, come il sistema della guida e la strumentazione Java, definiscono ulteriori prospettive. Il plug-in può definire la propria prospettiva contribuendo al punto di estensione org.eclipse.ui.perspectives.

La specifica della prospettiva nel file plugin.xml è lineare. Il workbench utilizza il seguente tag per definire la propria prospettiva Risorsa.

<extension
    point="org.eclipse.ui.perspectives">
    <perspective
        id="org.eclipse.ui.resourcePerspective"
        name="Resource"
        class="org.eclipse.ui.internal.ResourcePerspective">
    </perspective>
</extension>

Un plug-in deve fornire un id e un nome per la prospettiva, oltre al nome della classe che implementa la prospettiva. È anche possibile specificare un'icona. La classe della prospettiva deve implementare IPerspectiveFactory.

Dal tag si evince che l'operazione effettiva si verifica nel codice. L'interfaccia per il factory della prospettiva è lineare. Gli implementatori di IPerspectiveFactory devono configurare un IPageLayout contenente le informazioni descrittive della prospettiva e del relativo layout di pagina.

Layout di parte del workbench

IPageLayout deve soprattutto descrivere la posizione dell'editor e delle visualizzazioni nella finestra del workbench. Si osservi che questi layout differiscono dalla classe Layout presente in SWT. Sebbene IPageLayout e Layout risolvano lo stesso problema (la definizione delle dimensioni e della posizione dei widget in un'area più grande), per fornire un layout di pagina della prospettiva non è necessario conoscere i layout di SWT.

Un layout di pagina di una prospettiva viene inizializzato con un'area per la visualizzazione di un editor. Il factory della prospettiva è responsabile dell'aggiunta di ulteriori visualizzazioni relative all'editor. Le visualizzazioni vengono aggiunte al layout in relazione a un'altra parte (in alto, in basso, a sinistra, a destra). È anche possibile aggiungere un segnaposto (spazio vuoto) per una visualizzazione inizialmente non mostrata.

IFolderLayout può essere utilizzato per raggruppare visualizzazioni in cartelle con schede. Ad esempio, la prospettiva Risorsa posiziona il navigator delle risorse all'interno di una cartella nell'angolo superiore sinistro del workbench.  I segnaposto vengono comunemente utilizzati con i layout delle cartelle. La prospettiva Risorsa definisce un segnaposto per la visualizzazione dei segnalibri nella stessa cartella dell'esplorazione delle risorse. La visualizzazione dei segnalibri verrà mostrata nella stessa cartella del navigator, con una scheda per ciascuna visualizzazione.

IPageLayout consente anche di aggiungere serie di azioni a una prospettiva.  È, inoltre, possibile aggiungere alcuni collegamenti ai menu correlati alla prospettiva.  Un nuovo collegamento guidato determinerà l'aggiunta di una nuova voce al menu File->Nuovo per una prospettiva e richiamerà la procedura guidata appropriata.   Collegamenti alle visualizzazioni determinano l'aggiunta del nome delle visualizzazioni che devono comparire nel menu Prospettiva->Mostra visualizzazione quando la prospettiva è attiva.  Collegamenti alla prospettiva determinano l'aggiunta del nome delle visualizzazioni che devono essere inclusi nel menu Prospettiva->Apri quando la prospettiva è attiva.