Dekoreringsfunktioner

org.eclipse.ui.decorators

Release 2.0

Den här utökningspunkten används för att lägga till dekoreringsfunktioner i vyer som prenumererar på en dekoreringshanterare. Från 2.1 finns det inget som heter en lättdekoreringsfunktion för dekoreringsfunktionens bildhantering. Du kan också deklarera en lättdekoreringsfunktion som helt enkelt lägger över en ikon när den aktiveras och som inte behöver någon implementation av insticksprogrammet.

Aktivering och/eller synlighet för en åtgärd kan definieras med hjälp av elementen enablement respektive visibility. Dessa två element innehåller ett booleskt uttryck som utvärderas för att fastställa aktivering och/eller synlighet.

Syntaxen är densamma för elementen enablement och visibility. Båda innehåller endast ett underelement med ett booleskt uttryck. I det enklaste fallet är detta något av elementen objectClass, objectState, pluginState eller systemProperty. I det mer komplicerade fallet kombineras elementen and, or och not så att ett booleskt uttryck skapas. Både and och or måste innehålla två underelement. Elementet not får bara innehålla ett underelement.

<!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)>

ett valfritt underelement vars innehållsdel ska innehålla en kort beskrivning av dekoreringsfunktionen. Denna visas på inställningssidan för dekoreringsfunktioner varför vi rekommenderar att du tar med den. Standard är en tom sträng.



<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>

Elementet används för att definiera aktivering av utökningen.



<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>

Elementet används för att definiera synligheten för utökningen.



<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>

Elementet representerar ett booleskt AND-uttryck för resultatet från utvärderingen av de två underelementuttrycken.



<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>

Elementet representerar ett booleskt OR-uttryck för resultatet från utvärderingen av de två underelementuttrycken.



<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>

Elementet representerar ett booleskt NOT-uttryck för resultatet från utvärderingen av underelementuttrycken.



<!ELEMENT objectClass EMPTY>

<!ATTLIST objectClass

name CDATA #REQUIRED>

Elementet används för att utvärdera klassen eller gränssnittet för varje objekt i det aktuella urvalet. Om varje objekt i urvalet implementerar angiven klass eller angivet gränssnitt utvärderas uttrycket till sant.



<!ELEMENT objectState EMPTY>

<!ATTLIST objectState

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Elementet används för att utvärdera attributläget för varje objekt i det aktuella urvalet. Om varje objekt i urvalet har angivet attributläge utvärderas uttrycket till sant. För att utvärdera den här typen av uttryck måste varje objekt i urvalet implementera eller anpassas till gränssnittet org.eclipse.ui.IActionFilter.



<!ELEMENT pluginState EMPTY>

<!ATTLIST pluginState

id    CDATA #REQUIRED

value (installed|activated) "installed">

Elementet används för att utvärdera insticksprogrammets läge. Läget för insticksprogrammet kan vara ett av följande:installed (motsvarar OSGi-begreppet "löst") eller activated (motsvarar OSGi-begreppet "aktiv").



<!ELEMENT systemProperty EMPTY>

<!ATTLIST systemProperty

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Elementet används för att utvärdera läget för vissa systemegenskaper. Egenskapsvärdet hämtas från java.lang.System.



Följande är ett exempel på dekoreringsfunktioner:

En fullständig dekoreringsfunktion. Utvecklaren av insticksprogram måste hantera sin egen bildsupport.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.decorator"

label=

"XYZ dekoreringsfunktion"

state=

"true"

class=

"com.xyz.DecoratorContributor"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

En lättdekoreringsfunktion. Det finns konkret klass men eftersom det är en ILightweightLabelDecorator behöver den bara tillhandahålla text och en ImageDescriptor, varför ingen resurshantering är nödvändig.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.decorator"

label=

"XYZ lättdekoreringsfunktion"

state=

"false"

class=

"com.xyz.LightweightDecoratorContributor"

lightweight=

"true"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

En deklarativ lättdekoreringsfunktion. Det finns inte någon konkret klass varför en ikon och en kvadrant för ikonen tillhandahålls.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.declarative.decorator"

label=

"XYZ lättdeklarativ dekoreringsfunktion"

state=

"false"

lightweight=

"true"

icon=

"icons/full/declarative.gif"

location=

"TOP_LEFT"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

Värdet på attributet class måste vara det fullständiga namnet på en klass som implementerar org.eclipse.jface.viewers.ILabelDecorator (om lightweight är false) eller org.eclipse.jface.viewers.ILightweightLabelDecorator. Den är klassen läses in så sent som möjligt för att undvika inläsning av hela insticksprogrammet innan det verkligen behövs. Deklarativa dekoreringsfunktioner medför inte någon aktivering av insticksprogram och ska användas där det är möjligt. Dekoreringsfunktioner som inte är 'lightweight' utkommenteras till slut.

Insticksprogram kan använda den här utökningspunkten för att lägga till nya dekoreringsfunktioner att använda på vyer som använder dekoreringshanteraren för etikettsdekorering. Om du vill använda dekoreringshanteraren använder du resultatet av IViewPart.getDecoratorManager() som dekoreringsfunktion för en förekomst av DecoratingLabelProvider. Detta används för tillfället av resursnavigatorn.