Prospettive

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 viste mediante il menu Finestra >Mostra vista. È possibile nascondere o mostrare l'insieme di azioni mediante il menu Finestra >Personalizza prospettiva.... Queste funzioni supportano l'utente nell'organizzazione del workbench.

Le prospettive forniscono un ulteriore livello di organizzazione all'interno di una finestra di workbench. Gli utenti possono passare da una prospettiva all'altra mentre si spostano tra le attività. Una prospettiva definisce un insieme di viste, un layout per tali viste e gli insiemi di azioni visibili da utilizzare quando l'utente apre per la prima volta la prospettiva.

Le prospettive sono implementate utilizzando  IPerspectiveFactoryGli 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 viste 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 viste relative all'editor. Le viste vengono aggiunte al layout relativo in un'altra parte (in alto, in basso, a sinistra, a destra). È anche possibile aggiungere segnaposti (spazi vuoti) per elementi inizialmente non visualizzati.

Per organizzare con maggiore accuratezza le viste relative, è possibile utilizzare IFolderLayout in modo da raggruppare le viste in cartelle a schede. Ad esempio, la prospettiva Risorsa posiziona il pannello di selezione 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 vista dei segnalibri nella stessa cartella dell'esplorazione delle risorse. La vista dei segnalibri verrà mostrata nella stessa cartella del pannello di selezione, con una scheda per ciascuna vista.

IPageLayout consente, inoltre, di definire le azioni e i collegamenti disponibili all'interno di una prospettiva.  

Collegamento di viste ed editor con "Mostra in"

Un'altro servizio offerto dalle prospettive e da IPageLayout è il supporto nella navigazione tra un editor e le relative viste.  Spesso le viste sono considerate un aiuto per l'utente nella ricerca degli oggetti da gestire tramite editor.  Tuttavia è utile anche l'opposto:  un utente che modifica un oggetto in un editor, può avere necessità di accedere all'oggetto tramite una vista.  Questo si ottiene utilizzando il menu del workbench Esplora > Mostra in.  Questo comando consente all'utente di utilizzare qualsiasi vista correlata nel contesto dell'oggetto attualmente selezionato.  Ad esempio, un utente che modifica un file potrebbe voler visualizzare questo file nel pannello di selezione risorse.

L'architettura dei plug-in nel workbench consente agli sviluppatori di fornire viste ed editor in plug-in differenti, che possono operare in modo indipendente.  Implementando il supporto di "Mostra in," le viste e gli editor possono consentire l'interazione con viste ed editor forniti da altri plug-in. 

In questo modo l'utente può navigare con facilità tra le viste o aprire una vista che non è normalmente visualizzata in una prospettiva.  Ad esempio, un utente che utilizza la prospettiva Java può selezionare Esplora > Mostra in per visualizzare il file Java in modifica nella vista Selezione.

Origine Mostra in

Per consentire agli utenti di utilizzare Esplora > Mostra in da un editor o una vista per passare ad un'altra vista, occorre implementare IShowInSource.  È possibile fornire il proprio IShowInSource direttamente usando il protocollo (getShowInSource()) oppure come adattatore.  IShowInSource consente di fornire un contesto (IShowInContext) che viene utilizzato dalla destinazione per decidere come visualizzare l'origine.  Il contesto Mostra in per un editor è il suo elemento di input.  Per una vista, il contesto è rappresentato dalla selezione.  Sia la selezione che l'elemento di input sono fornite in IShowInContext per dare una maggiore flessibilità alla destinazione nel determinare come visualizzare l'origine. 

Per gli editor viene fornito un contesto predefinito, in modo che l'editor possa utilizzare "Mostra in" senza richiede un codice specifico.  L'elemento di input e la selezione sono utilizzati negli editor per creare un contesto appropriato. 

Le viste devono implementare IShowInSource per poter offrire la funzionalità Esplora > Mostra in.

Destinazione Mostra in

Affinché la vista sia una destinazione valida per un'operazione "Mostra in", è necessario implementare IShowInTarget.  La destinazione è responsabile della visualizzazione di un contesto in modo appropriato per la presentazione.  Ad esempio, la vista Selezione espande la sua struttura per selezionare una risorsa specificata nel contesto.  

Una destinazione dovrebbe verificare la selezione in IShowInContext prima di decidere cosa visualizzare, in quanto questa è un'informazione specifica.  L'elemento di input dovrebbe essere visualizzato solo se non è indicata una selezione.

Presentazione delle destinazioni appropriate

L'elenco delle destinazioni disponibili viene determinato  specificando le destinazioni disponibili per la prospettiva in IPageLayout.  Si ricordi che attraverso "Mostra in" è possibile aprire una vista che non è già presente nella prospettiva.  Utilizzando IPageLayout.addShowInPart, è possibile specificare una destinazione valida per "Mostra in" tramite l'id.  In questo modo, le destinazioni valide possono essere stabilite senza creare viste non necessarie.

Copyright IBM Corporation e altri 2000, 2003.