Seu plug-in pode utilizar decoradores para anotar as imagens de recursos e outros objetos que aparecem nas exibições do workbench. Os decoradores são úteis quando seu plug-in inclui funcionalidade para tipos de recursos existentes. Muitas das exibições padrão do workbench participam na exibição de decorações.
Por exemplo, o PDE contribui com decoradores que permitem a distinção entre projetos binários e de origem.
O projeto com.example.sourceProject é o único projeto de origem mostrado no navegador. Observe como os outros projetos binários mostram o decorador binário no lado superior esquerdo do ícone do projeto Java. Esse decorador recebe contribuição do PDE utilizando o ponto de extensão 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>
O atributo class deve nomear uma classe que implemente ILabelDecorator. Essa classe permite decorar a imagem e o texto originais do rótulo com suas próprias anotações. Os atributos label e description designam o texto que é utilizado para nomear e descrever o decorador no diálogo de preferências. O objectClass nomeia a classe de objetos à qual o decorador deve ser aplicado. O sinalizador adaptable indica se os objetos que se adaptam à classe também devem ser decorados. O sinalizador state controla se o decorador ficará visível por padrão.
Os decoradores são controlados basicamente pelo usuário através da página de preferências Decorações do Rótulo do workbench. Os decoradores individuais podem ser ativados e desativados. Mesmo assim, é interessante projetá-los para que não sobreponham ou entrem em conflito com decoradores SDK existentes da plataforma. Se seus decoradores incluírem informações que sejam caras de calcular ou muito confusas, é possível que você queira contribuir com suas próprias preferências que permitem que o usuário ajuste com precisão o decorador quando está ativo. Esta técnica é utilizada pelo cliente CVS.