Egenskabssider

org.eclipse.ui.propertyPages

Dette udvidelsespunkt bruges til at tilføje ekstra egenskabssider for objekter af en bestemt type. Når egenskabssiderne er defineret, vises de i dialogboksen Egenskaber for objekter af denne type.

En egenskabsside er en brugervenlig metode til at arbejde med egenskaberne for et objekt. I modsætning til oversigten Egenskaber, som begrænser den plads, der er tilgængelig for redigering af en objektegenskab, kan en egenskabsside udnytte muligheden for at definere større, mere komplekse kontroller med etiketter, ikoner osv. Egenskaber, som logisk følges ad, kan også anbringes samlet på en side, i stedet for at blive spredt rundt på egenskabsarket. Men i de fleste programmer vil det være relevant at vise nogle af et objekts egenskaber via egenskabsarket og nogle via egenskabssiderne.

Egenskabssider vises i en dialogboks, der normalt er synlig, når menupunktet "Egenskaber" vælges på en pop op-menu for et objekt. Ud over objektklassen kan du vælge at levere et navnefilter for kun at registrere egenskabssider til bestemte objekttyper.

Hvis disse filtreringsmekanismer ikke er egnede, kan en egenskabsside bruge filtermekanismen. I dette tilfælde beskrives attributterne for målobjektet i en række nøgleværdipar. De attributter, der gælder for valget, er typespecifikke og ligger uden for selve arbejdsbænkens domæne, så arbejdsbænken delegerer filtrering på dette niveau til det faktiske valg.

<!ELEMENT extension (page*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

navn  CDATA #IMPLIED>


<!ELEMENT page (filter* , keywordReference* , enabledWhen?)>

<!ATTLIST page

id          CDATA #REQUIRED

name        CDATA #REQUIRED

icon        CDATA #IMPLIED

objectClass CDATA #IMPLIED

class       CDATA #REQUIRED

nameFilter  CDATA #IMPLIED

adaptable   (true | false)

category    CDATA #IMPLIED>


<!ELEMENT filter EMPTY>

<!ATTLIST filter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Dette element bruges til at evaluere attributtilstanden for hvert objekt i det aktuelle valg. Kun en match, hvis alle objekter i valget har den angivne attributtilstand. Alle objekter i valget skal implementere eller tilpasses til org.eclipse.ui.IActionFilter.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

En reference fra en egenskabsside til et nøgleord. Se udvidelsespunktet for nøgleord.



<!ELEMENT enabledWhen (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>



<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Et generisk rodelement. Elementet kan anvendes i et udvidelsespunkt for at angive dets aktiveringsudtryk. Underordnede til et aktiveringsudtryk kombineres vha. en operator.



<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>

Dette element repræsenterer en NOT-funktion på resultatet af evalueringen af dets underelementudtryk.



<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Dette element repræsenterer en AND-funktion på resultatet af evalueringen af dets underelementudtryk.



<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Dette element repræsenterer en OR-funktion på resultatet af evalueringen af alle dets underelementudtryk.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Dette element anvendes til at udføre et instanceof-check af objektet i fokus. Udtrykket returnerer EvaluationResult.TRUE, hvis objektets type er en undertype der er angivet af attributværdien. Eller returneres EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Dette element anvendes til evaluere egenskabstilstanden for objektet i fokus. Sættet af egenskaber, der kan testes, kan udvides vha. udvidelsespunktet egenskabstester. Testudtrykket returnerer EvaluationResult.NOT_LOADED, hvis egenskabstester, der udfører den aktuelle test, ikke er indlæst endnu.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Tester en systemegenskab ved at kalde metoden System.getProperty og sammenligner resultatet med den værdi, der er angivet via værdiattributten.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Dette element anvendes til at udføre en sammenligningskontrol af objektet i fokus. Udtrykket returnerer EvaluationResult.TRUE, hvis objektet er lig med værdiudbyderen for attributværdien. Eller returneres EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Dette element anvendes til at teste antallet af elementer i en samling.



<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST with

variable CDATA #REQUIRED>

Dette element ændrer det objekt, der skal undersøges for alle underordnede elementer, til et objekt, der henvises til fra en given variabel. Hvis variablen ikke kan opløses, vil udtrykket sende en ExpressionException, når den evalueres. En underordnet med et with-udtryk kombineres ved at bruge operatoren and.



<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Dette element ændrer det objekt, der skal undersøges for alle underordnede elementer, til et objekt, der henvises til fra en given variabel. Hvis variablen ikke kan opløses, vil udtrykket sende en ExpressionException, når den evalueres. En underordnet med et with-udtryk kombineres ved at bruge operatoren and.



<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST adapt

type CDATA #REQUIRED>

Dette element anvendes til at tilpasse objekter i fokus til den type, der er angivet af attributtypen. Udtrykket returnerer ikke indlæst, hvis adapteren eller den type, der henvises til, ikke er indlæst endnu. Det sender enExpressionException under evalueringen, hvis typenavnet slet ikke findes. Underordnede til et tilpasset udtryk kombineres vha. operatoren AND.



<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST iterate

operator (or|and) >

Dette element anvendes til gentagelser for en variabel, der har typen java.util.Collection. Hvis objektet i fokus ikke er af typen java.util.Collection, sendes der en ExpressionException, når udtrykket evalueres.



Her er et eksempel på en definition af en egenskabsside:

   

<udvidelsespunkt=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"XYZ-javaegenskaber"

objectClass=

"org.eclipse.core.resources.IFile"

class=

"com.xyz.ppages.JavaPropertyPage"

nameFilter=

"*.java"

>

<filter name=

"readOnly"

value=

"true"

/>

</page>

</extension>

Attributten class skal angive et fuldstændigt navn på den klasse, der implementerer org.eclipse.ui.IWorkbenchPropertyPage.

Nogle af de objekter, som arbejdsbænken leverer, kan have egenskabssider registreret. Plugins kan tilføje flere egenskabssider for disse objekter. Egenskabssider er ikke begrænset til arbejdsbænksressourcer: Alle objekter, der vises på arbejdsbænken (også domænespecifikke objekter, oprettet af plugins), kan have egenskabssider, og andre plugins har mulighed for at registrere egenskabssider for dem.