Desde: Release 2.0
Descrição: Este ponto de extensão é utilizado para incluir decoradores em exibições que inscrevem um gerenciador de decorador. Como no 2.1, haverá um conceito de decorador lightweight que identificará o gerenciamento de imagens para o decorador. Também possível declarar um decorador lightweight que simplesmente substituirá um ícone, quando ativado, que não requer nenhuma implementação do plug-in.
A ativação e/ou visibilidade de uma ação pode ser definida utilizando os elementos enablement e visibility respectivamente. Esses dois elementos contêm uma expressão booleana que é avaliada para determinar a ativação e/ou visibilidade de uma ação.
A sintaxe dos elementos enablement e visibility é a mesma. Ambos contêm apenas um subelemento de expressão booleana. No caso mais simples, esse subelemento será um elemento objectClass, objectState, pluginState ou systemProperty. No caso mais complexo, os elementos and, or e not poderão ser combinados para formar uma expressão booleana. Os elementos and e or devem conter 2 subelementos. O elemento not deve conter apenas 1 subelemento.
Marcação da Configuração:
<!ELEMENT extension (decorator*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
<!ELEMENT decorator (description? , enablement?)>
<!ATTLIST decorator
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
objectClass CDATA #IMPLIED
adaptable (true | false)
state (true | false)
quadrant (TOP_LEFT|TOP_RIGHT|BOTTOM_RIGHT|BOTTOM_LEFT)
lightweight (true|false)
icon CDATA #IMPLIED
location (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY)
>
<!ELEMENT description (#CDATA)>
Um subelemento opcional cujo corpo deve conter um texto, fornecendo uma breve descrição do decorador. Isso será mostrado na página Preferência de decoradores, portanto, recomenda-se que esteja incluído. O valor padrão é uma Cadeia vazia.
<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Este elemento é utilizado para definir a ativação da ação.
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Este elemento é utilizado para definir a visibilidade da ação.
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Este elemento representa uma operação booleana AND como resultado da avaliação de duas expressões de subelementos.
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Este elemento representa uma operação booleana OR como resultado da avaliação de duas expressões de subelemento.
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Este elemento representa uma operação booleana NOT como resultado da avaliação de expressões de subelementos.
<!ELEMENT objectClass EMPTY>
Este elemento é utilizado para avaliar a classe ou interface de cada objeto na seleção atual. Se cada objeto na seleção implementar a classe ou a interface especificada, a expressão será avaliada como true.
<!ATTLIST objectClass<!ELEMENT objectState EMPTY>
Este elemento é utilizado para avaliar o estado de atributo de cada objeto na seleção atual. Se cada objeto na seleção tiver o estado de atributo especificado, a expressão será avaliada como true. Para avaliar esse tipo de expressão, cada objeto na seleção deve implementar ou adaptar-se à interface org.eclipse.ui.IActionFilter.
<!ATTLIST objectState<!ELEMENT pluginState EMPTY>
Este elemento é utilizado para avaliar o estado de um plug-in. O estado do plug-in pode ser um dos seguintes: installed ou activated.
<!ATTLIST pluginState<!ELEMENT systemProperty EMPTY>
Este elemento é utilizado para avaliar o estado de algumas propriedades do sistema. O valor da propriedade é recuperado de java.lang.System.
<!ATTLIST systemPropertyUm decorador completo. O desenvolvedor de plug-ins deve identificar seu próprio suporte de imagens.
<extension point="org.eclipse.ui.decorators"> <decorator id="com.xyz.decorator" label="XYZ Decorator" state="true" class="com.xyz.DecoratorContributor"> <enablement> <objectClass name="org.eclipse.core.resources.IResource"/> </enablement> </decorator> </extension>
Um decorador lightweight. Há uma classe concreta, mas como ele está em um ILightweightLabelDecorator, só precisa fornecer texto e um ImageDescriptor, não precisando de nenhuma identificação de recurso.
<extension point="org.eclipse.ui.decorators"> <decorator id="com.xyz.lightweight.decorator" label="XYZ Lightweight Decorator" state="false" class="com.xyz.LightweightDecoratorContributor" lightweight="true" > <enablement> <objectClass name="org.eclipse.core.resources.IResource"/> </enablement> </decorator> </extension>
Um decorador lightweight informativo. Não há nenhuma classe concreta, portanto, ele fornece um ícone e um quadrante para aplicar esse ícone.
<extension point="org.eclipse.ui.decorators"> <decorator id="com.xyz.lightweight.declarative.decorator" label="XYZ Lightweight Declarative Decorator" state="false" lightweight="true" icon="icons/full/declarative.gif" location="TOP_LEFT"> <enablement> <objectClass name="org.eclipse.core.resources.IResource"/> </enablement> </decorator> </extension>
Informações de API: O valor do atributo class deve ser o nome completo de uma classe que implementa org.eclipse.jface.viewers.ILabelDecorator (se lightweight for false) ou org.eclipse.jface.viewers.ILightweightLabelDecorator. Essa classe é carregada o mais tarde possível para evitar o carregamento de todo o plug-in antes que isso seja realmente necessário. Decoradores informativos não exigem a ativação de plug-ins e devem ser utilizados sempre que possível. Decoradores não-lightweight serão eventualmente recusados.
Implementação Fornecida: Os plug-ins podem utilizar este ponto de extensão para incluir novos decoradores para serem aplicados em exibições que utilizam o gerenciador de decoradores como seus decoradores de rótulo. Para utilizar o gerenciador de decoradores, utilize o resultado de IViewPart.getDecoratorManager() como decorador de uma instância de DecoratingLabelProvider. Atualmente, isso está sendo utilizado pelo Navegador de Recursos.
Copyright (c) 2002,2003 IBM Corporation e outros.
Todos os direitos reservados.
Este programa e os materiais que o acompanham são disponibilizados sob os termos da Common Public License v1.0 que acompanha esta distribuição e estão disponíveis no endereço http://www.eclipse.org/legal/cpl-v10.html