Presentazione degli elementi Java in un visualizzatore JFace

L'API dell'interfaccia utente JDT fornisce diverse classi per la presentazione del modello Java o delle relative parti in un visualizzatore JFace standard. Questa funzione viene fornita principalmente da:

I fornitori di contenuti ed etichette per i visualizzatori JFace sono descritti nei dettagli nei visualizzatori JFace.

Una volta capito il meccanismo della piattaforma di base, mettere insieme i fornitori di contenuti ed etichette Java è piuttosto semplice:
    ...
    	TreeViewer viewer= new TreeViewer(parent);
    // Fornire ai membri un'unità di compilazione o un file di classe ma nessun elemento di copia di lavoro
    ITreeContentProvider contentProvider= new StandardJavaElementContentProvider(true, false);
    viewer.setContentProvider(contentProvider);
   	// Nella classe JavaElementLabelProvider sono definiti più indicatori
    ILabelProvider labelProvider= new JavaElementLabelProvider(
        JavaElementLabelProvider.SHOW_DEFAULT |
        JavaElementLabelProvider.SHOW_QUALIFIED |
        JavaElementLabelProvider.SHOW_ROOT);
    viewer.setLabelProvider(labelProvider);
   	// Utilizzando il modello Java come input del visualizzatore, i progetti Java vengono presentati sul primo livello.
    viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));
    ...

Questo esempio utilizza il modello aJava (IJavaModel) come elemento di input per il visualizzatore.  StandardJavaElementContentProvider supporta inoltre IJavaProject, IPackageFragmentRoot, IPackageFragment e IFolder come elementi di input:

Sovrapposizione di immagini con informazioni Java

La classe JavaElementImageDescriptor può essere utilizzata per creare un'immagine basata su un descrittore di immagini di base arbitrario e un insieme di indicatori con specifiche caratteristiche Java (ad esempio, statica, finale, sincronizzata e .così via).

Aggiunta di decoratori di problemi e sovrapposizioni

Quando un visualizzatore deve includere annotazioni di problemi, viene utilizzato il metodo JFace DecoratingLabelProvider insieme al metodo ProblemsLabelDecorator. Il frammento di seguito riportato illustra l'utilizzo del decoratore di etichette di problemi.
    ...
    	DecoratingLabelProvider decorator= new DecoratingLabelProvider(labelProvider, new ProblemsLabelDecorator());	
    viewer.setLabelProvider(decorator);
    ...

Analogamente, è possibile utilizzare il metodo OverrideIndicatorLabelDecorator per decorare un normale fornitore di etichette per la visualizzazione degli indicatori di implementazione e sostituzione per i metodi.

Aggiornamento della presentazione in base alle modifiche del modello

Le modifiche del modello non hanno effetti né su OverrideIndicatorLabelDecorator né su ProblemsLabelDecorator . Pertanto, il visualizzatore non aggiorna la presentazione se il modello dell'indicatore di risorse o Java viene modificato. L'aggiornamento per queste classi viene effettuato sul client in quanto non è ancora disponibile un'implementazione generica che soddisfi tutti gli aspetti relativi alle prestazioni. La gestione dell'ispezione del delta del modello Java e l'aggiornamento del visualizzatore in ciascun fornitore o decoratore di etichetta determinano più ispezioni delta e aggiornamenti del visualizzatore non necessari.

Pertanto, per aggiornare i visualizzatori, il client dovrà effettuare le operazioni riportate di seguito

Il metodo StandardJavaElementContentProvider non ascolta le modifiche del modello per le stesse motivazioni descritte per i decoratori di etichette. Se il visualizzatore deve aggiornare la presentazione in base alle modifiche del modello Java, il client deve aggiungere un listener corrispondente a JavaCore. Se le modifiche descritte dal delta invalidano la struttura degli elementi presentati nel visualizzatore, il client deve aggiornare il visualizzatore utilizzando l'API JFace standard (vedere i metodi di aggiornamento in StructuredViewer e i metodi di aggiunta ed eliminazione in TableViewer e AbstractTreeViewer).

Ordinamento del visualizzatore

È possibile inserire JavaElementSorter in un visualizzatore JFace per ordinare gli elementi Java in base allo stile di ordinamento dell'interfaccia utente Java.

Copyright IBM Corporation e altri 2000, 2003. Tutti i diritti riservati.