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); // Provide members of a compilation unit or class file, but no working copy elements ITreeContentProvider contentProvider= new StandardJavaElementContentProvider(true, false); viewer.setContentProvider(contentProvider); // There are more flags defined in class JavaElementLabelProvider ILabelProvider labelProvider= new JavaElementLabelProvider( JavaElementLabelProvider.SHOW_DEFAULT | JavaElementLabelProvider.SHOW_QUALIFIED | JavaElementLabelProvider.SHOW_ROOT); viewer.setLabelProvider(labelProvider); // Using the Java model as the viewers input present Java projects on the first level. 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:
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).
... 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.
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
ProblemTreeViewer.handleLabelProviderChanged.
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).
È possibile inserire JavaElementSorter in un visualizzatore JFace per ordinare gli elementi Java in base allo stile di ordinamento dell'interfaccia utente Java.