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:
...Oltre al modello Java, la classe
IJavaProject jProject= ...;
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ù flag
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()));
...
StandardJavaElementContentProvider
supporta i seguenti tipi di elementi di input: IJavaProject
,
IPackageFragmentRoot
, IPackageFragment
e IFolder
....Analogamente, è possibile utilizzare il metodo OverrideIndicatorLabelDecorator per decorare un normale fornitore di etichetta per la visualizzazione degli indicatori di implementazione e sostituzione per i metodi.
DecoratingLabelProvider decorator= new DecoratingLabelProvider(labelProvider, new ProblemsLabelDecorator());
viewer.setLabelProvider(decorator);
...
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.OverrideIndicatorLabelDecorator
: il client deve ascoltare le modifiche al modello Java (vedere JavaCore.addElementChangedListener
)
e stabilire se le modifiche descritte dal delta invalidano l'indicatore di sostituzione degli elementi presentati nel visualizzatore. In questo caso, la classe che esegue l'ispezione del delta deve attivare un aggiornamento degli elementi Java corrispondenti utilizzando l'API del visualizzatore JFace standard (vedere l'aggiornamento dei metodi in StructuredViewer).ProblemsLabelDecorator
: il client deve ascoltare le modifiche notificate dal decoratore mediante un metodo
ProblemsLabelChangedEvent
(vedere anche
ProblemsLabelDecorator.addListener
). Dal momento che il modello di indicatore si basa sulle risorse, il listener deve associare le notifiche delle risorse al modello di dati sottostante. Per un esempio di come effettuare questa operazione relativamente ai visualizzatori che presentano gli elementi Java, vedere le classi interne ProblemTreeViewer.handleLabelProviderChanged.