Il plug-in può utilizzare decoratori per inserire annotazioni inerenti alle immagini relative alle risorse e agli altri oggetti mostrati nelle visualizzazioni del workbench. I decoratori risultano di grande utilità quando il plug-in aggiunge nuove funzionalità per i tipi di risorse esistenti. Molte delle visualizzazioni standard del workbench partecipano alla visualizzazione delle decorazioni.
Ad esempio, il PDE fornisce decoratori che consentono di effettuare distinzioni tra progetti binari e progetti di origine.
Il progetto com.example.sourceProject è l'unico progetto di origine visualizzato nel navigator. Si noti come tutti gli altri progetti binari mostrino il decoratore binario nella parte superiore sinistra dell'icona del progetto Java. Questo decoratore viene fornito dal PDE mediante il punto di estensione org.eclipse.ui.decorators.
<extension point="org.eclipse.ui.decorators"> <decorator objectClass="org.eclipse.core.resources.IResource" adaptable="true" label="%decorator.label" state="false" class="org.eclipse.pde.internal.ui.wizards.imports.BinaryProjectDecorator" id="org.eclipse.pde.ui.binaryProjectDecorator"> <description> %decorator.desc </description> </decorator> </extension>
L'attributo class deve assegnare un nome a una classe che implementa ILabelDecorator. Tale classe consente di decorare l'immagine e il testo dell'etichetta originale con annotazioni personalizzate. Gli attributi label e description designano il testo utilizzato per denominare e descrivere il decoratore nella finestra di dialogo delle preferenze. objectClass assegna un nome alla classe di oggetti cui deve essere applicato il decoratore. Il flag adaptable indica se è necessario decorare anche gli oggetti che si adattano alla classe. Il flag state controlla se il decoratore è visibile per impostazione predefinita.
I decoratori vengono controllati dall'utente mediante la pagina delle preferenze Decorazioni etichette del workbench. I singoli decoratori possono essere attivati e disattivati. Nonostante ciò, è consigliabile designare decoratori personalizzati in modo da evitare sovrapposizioni o conflitti con i decoratori SDK della piattaforma esistenti. Se i decoratori includono informazioni dispendiose da elaborare o potenzialmente fuorvianti, specificare preferenze personalizzate consente di regolare il decoratore secondo le proprie esigenze dopo averlo attivato. Questa tecnica viene utilizzata dal client CVS.