Egy tevékenység engedélyezése és/vagy láthatósága az enablement és visibility elemek segítségével adható meg, értelemszerűen. Ez a két elem egy logikai kifejezést tartalmaz, amely az engedélyezettség és/vagy láthatóság meghatározása érdekében kiértékelésre kerül.
Az enablement és visibility elem szintaxisa megegyezik. Mindkettő csak egy logikai kifejezés részelemet tartalmaz. A legegyszerűbb esetben ez egy objectClass, objectState, pluginState vagy systemProperty elem. Bonyolultabb esetben az and, or és not elemek kombinálhatók egy logikai kifejezés létrehozása érdekében. Az and és or elemnek egyaránt 2 részelemet kell tartalmaznia. A not elem csak 1 részelemet tartalmazhat.
<!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)
lightweight (true|false)
icon CDATA #IMPLIED
location (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY) >
<!ELEMENT description (#PCDATA)>
egy elhagyható részelem, amelynek törzse a díszítmény rövid leírását biztosító szöveget tartalmazza. Ez megjelenik a Díszítmények beállításlapon, így ajánlatos megadni. Az alapértelmezett érték az üres karaktersorozat.
<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Az elem megadja a kiterjesztés engedélyezettségét.
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Az elem meghatározza a kiterjesztés láthatóságát.
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Az elem egy logikai AND műveletet ábrázol a két részelemként kiértékelt kifejezés eredményén.
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Az elem egy logikai OR műveletet ábrázol a két részelemként kiértékelt kifejezés eredményén.
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Az elem egy logikai NOT műveletet ábrázol a részelemként kiértékelt kifejezés eredményén.
<!ELEMENT objectClass EMPTY>
<!ATTLIST objectClass
name CDATA #REQUIRED>
Az elem kiértékeli az aktuális kijelölés minden objektumának osztályát és felületét. Ha a kijelölés minden objektuma megvalósítja a megadott osztályt vagy felületet, akkor a kifejezés igaz értéket ad vissza.
<!ELEMENT objectState EMPTY>
<!ATTLIST objectState
name CDATA #REQUIRED
value CDATA #REQUIRED>
Az elem kiértékeli az aktuális kijelölés minden objektumának attribútumállapotát. Ha a kijelölés minden objektuma rendelkezik megadott attribútumállapottal, akkor a kifejezés igaz értéket ad vissza. Ilyen típusú kifejezés kiértékeléséhez a kijelölés minden objektumának meg kell valósítania, vagy adaptálódnia kell az org.eclipse.ui.IActionFilter felülethez.
<!ELEMENT pluginState EMPTY>
<!ATTLIST pluginState
id CDATA #REQUIRED
value (installed|activated) "installed">
Az elem kiértékeli a bedolgozó állapotát. A bedolgozó állapota az alábbi lehet: telepített ("feloldott" OSGi állapotnak felel meg) vagy aktivált ("aktív" OSGi állapotnak felel meg).
<!ELEMENT systemProperty EMPTY>
<!ATTLIST systemProperty
name CDATA #REQUIRED
value CDATA #REQUIRED>
Az elem néhány rendszertulajdonság állapotát értékeli ki. A tulajdonságérték a java.lang.System elemből kerül lekérésre.
Egy teljes díszítmény. A bedolgozófejlesztőnek a saját képtámogatását kezelnie kell.
<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>
Könnyűsúlyú díszítmény. Ez egy konkrét osztály, de mivel az ILightweightLabelDecorator elemben van, csak szöveget és egy ImageDescriptor elemet kell megadni, így nincs szükség erőforrás-kezelésre.
<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>
Dekalatív könnyűsúlyú díszítmény. Itt nincs konkrét osztály, így ez egy ikont és az ikonra alkalmazható kvadránst biztosít.
<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>
Copyright (c) 2002, 2004 IBM Corporation és mások.
Minden jog fenntartva. Jelen program és annak kísérőanyagai a csomaghoz
tartozó, illetve a
http://www.eclipse.org/legal/epl-v10.html
címen is elérhető Eclipse Public License 1.0 verziójának hatálya alatt lettek
közzétéve.