En funktions aktivering og/eller synlighed kan defineres ved hjælp af elementerne enablement og visibility. Disse to elementer indeholder et boolesk udtryk, der evalueres for at bestemme aktiveringen og/eller synligheden.
Syntaksen er den samme for elementerne enablement og visibility. De indeholder begge kun et underelement til et boolesk udtryk. I de mest enkle tilfælde vil det være et af følgende elementer: objectClass, objectState, pluginState eller systemProperty. I mere komplekse tilfælde kan elementerne and, or og not kombineres, så de danner et boolesk udtryk. Både elementet and og or skal indeholde to underelementer. Elementet not må kun indeholde et underelement.
<!ELEMENT extension (decorator*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
navn 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)
lightweight (true|false)
icon CDATA #IMPLIED
location (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY) >
IDecoratorManager#update()
, når værdierne ændres. <!ELEMENT description (#PCDATA)>
Et valgfrit underelement, der indeholder en kort beskrivelse af dekoratøren. Beskrivelsen vises på indstillingssiden Dekoratører, så det anbefales, at dette element inkluderes. Standardværdien er en tom streng.
<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Dette element bruges til at definere aktiveringen af udvidelsen.
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Dette element bruges til at definere synligheden for udvidelsen.
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Dette element repræsenterer en boolesk AND-funktion på resultatet af evalueringen af dets to underelementudtryk.
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Dette element repræsenterer en boolesk OR-funktion på resultatet af evalueringen af dets to underelementudtryk.
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Dette element repræsenterer en boolesk NOT-funktion på resultatet af evalueringen af dets to underelementudtryk.
<!ELEMENT objectClass EMPTY>
<!ATTLIST objectClass
name CDATA #REQUIRED>
Dette element bruges til at evaluere klassen eller grænsefladen for hvert objekt i det aktuelle valg. Hvis hvert objekt i valget implementerer den angivne klasse eller grænseflade, evalueres udtrykket som true.
<!ELEMENT objectState EMPTY>
<!ATTLIST objectState
name CDATA #REQUIRED
value CDATA #REQUIRED>
Dette element bruges til at evaluere attributtilstanden for hvert objekt i det aktuelle valg. Hvis hvert objekt i valget har den angivne attributtilstand, evalueres udtrykket som true. For at evaluere denne type udtryk skal hvert objekt i valget implementere eller tilpasse dig grænsefladen org.eclipse.ui.IActionFilter.
<!ELEMENT pluginState EMPTY>
<!ATTLIST pluginState
id CDATA #REQUIRED
value (installed|activated) "installed">
Dette element bruges til at evaluere tilstanden for plugin. Tilstanden for plugin kan være en af følgende: installed (svarer til OSGi-konceptet "resolved") eller activated (svarer til OSGi-konceptet "active").
<!ELEMENT systemProperty EMPTY>
<!ATTLIST systemProperty
name CDATA #REQUIRED
value CDATA #REQUIRED>
Dette element bruges til at evaluere tilstanden for visse systemegenskaber. Egenskabsværdien hentes fra java.lang.System.
En fuldstændig dekoratør. Pluginudviklerne skal håndtere deres egen billedunderstøttelse.
<udvidelsespunkt=
"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>
En letvægtsdekoratør. Der er en konkret klasse, men da det er en ILightweightLabelDecorator, behøver den kun at levere tekst og en ImageDescriptor, og derfor er der ikke behov for ressourcehåndtering.
<udvidelsespunkt=
"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>
En erklærende letvægtdekoratør. Der er ingen konkret klasse, så den leverer en ikon og en kvadrant for at anvende ikonen.
<udvidelsespunkt=
"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>
Copyright (c) 2002, 2004 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html