Tulajdonságoldalak

org.eclipse.ui.propertyPages

Ez a kiterjesztési pont szolgál adott típusú objektumok további tulajdonságoldalainak felvételére. Megadás után a tulajdonságoldalak az adott típusú objektumok Tulajdonságok párbeszédablakában jelennek meg.

A tulajdonságoldalak felhasználóbarát módszert kínálnak az objektum tulajdonságainak kezelésére. Szemben a Tulajdonságok nézettel, amelyi korlátozza az objektumtulajdonságok szerkesztését, a tulajdonságoldalakon szabadabban, nagyobb és összetettebb vezérlőelemek, címkék és ikonok alkalmazhatók. A logikailag összetartozó tulajdonságok összegyűjthetők egy oldalra, nincsenek szétszórva a tulajdonságlapon. A legtöbb alkalmazás esetében azonban a legjobb megoldást bizonyos tulajdonságok a tulajdonságlapon, mások a tulajdonságoldalakon elérhetővé tétele jelenti.

A tulajdonságoldalak egy párbeszédablakban jelennek meg, amely normális esetben az objektum előugró menüjének Tulajdonságok menüpontját kiválasztva jelenik meg. Az objektumosztályon kívül opcionálisan megadható egy névszűrő is, csak meghatározott objektumtípusok tulajdonságoldalainak bejegyzéséhez.

Ha ezek a szűrési mechanizmusok nem lennének elegendők, akkor a tulajdonságoldal használhatja a filter mechanizmust. Ebben az esetben a célobjektum attribútumai egy sor kulcs-érték párként vannak megadva. A kijelölésnek megfelelő attribútumok típusspecifikusak és túlmutatnak magán a munkaterület tartományán, vagyis a munkaterület delegálni fogja a szűrést ezen a szinten a tényleges kijelölésnek.

<!ELEMENT extension (page*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  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>

Ez az elem használatos az aktuális kijelölésben szereplő egyes objektumok attribútumállapotainak kiértékelésére. Akkor igaz, ha a kijelölés minden egyes objektuma egy adott attribútumállapottal bír. A kijelölés minden egyes objektumának meg kell valósítania (vagy adaptálnia kell) az org.eclipse.ui.IActionFilter felületet.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Adatlap általi kulcsszóhivatkozás. Tekintse meg a kulcsszavak kiterjesztési pontot.



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

Általános gyökérelem. Az elem kiterjesztési pontokon belül használható a hozzá tartozó enablement kifejez meghatározására. Az enablement kifejezések leszármazottai az and operátorral kombinálhatók.



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

Ez az elem egy NOT műveletet képvisel a részelemeként kiértékelt kifejezés eredményén.



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

Ez az elem egy AND műveletet képvisel a részelemeként kiértékelt összes kifejezés eredményén.



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

Ez az elem egy OR műveletet képvisel a részelemeként kiértékelt összes kifejezés eredményén.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Ezzel az elemmel végezhető el a fókuszban lévő objektum instanceof ellenőrzése. A kifejezés az EvaluationResult.TRUE értékkel tér vissza, ha az objektum típusa a value attribútumban megadott típus altípusa. Ellenkező esetben EvaluationResult.FALSE kerül visszaadásra.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Ezzel az elemmel értékelhető ki a fókuszban lévő objektum tulajdonságának állapota. A tesztelhető tulajdonságok halmaza a tulajdonságtesztelő kiterjesztési ponton terjeszthető ki. A tesztelési kifejezés EvaluationResult.NOT_LOADED értéket ad vissza, ha a tényleges tesztelést végző tulajdonságtesztelő még nincs betöltve.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Megvizsgál egy rendszertulajdonságot a System.getProperty metódus meghívásával, és összehasonlítja az eredményt a value attribútumban megadott értékkel.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Ezzel az elemmel végezhető el a fókuszban lévő objektum egyenlőségi ellenőrzése. A kifejezés az EvaluationResult.TRUE értékkel tér vissza, ha az objektum egyenlő a value attribútumban megadott értékkel. Ellenkező esetben EvaluationResult.FALSE kerül visszaadásra.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Ezzel az elemmel vizsgálható megy egy kollekció elemszáma.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Az elem módosítja a leszármazott elemek tekintetében megvizsgálandó objektumot az adott változó által hivatkozott objektumra. Ha a változó nem oldható fel, akkor a kifejezés a kiértékelés során ExpressionException kivételt ad. A with kifejezések leszármazottai az and operátorral kombinálhatók.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Az elem módosítja a leszármazott elemek tekintetében megvizsgálandó objektumot az adott változó által hivatkozott objektumra. Ha a változó nem oldható fel, akkor a kifejezés a kiértékelés során ExpressionException kivételt ad. A with kifejezések leszármazottai az and operátorral kombinálhatók.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Ezzel az elemmel adaptálható a fókuszban lévő objektum a type attribútummal megadott típusra. A kifejezés "nincs betöltve" értéket ad vissza, ha a hivatkozott adapter vagy típus még nincs betöltve. ExpressionException kivételt ad a kiértékelés során, ha a típus neve egyáltalán nem létezik. Az adapt kifejezések leszármazottai az and operátorral kombinálhatók.



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

<!ATTLIST iterate

operator (or|and) >

Ezzel az elemmel iterálhatók a java.util.Collection típusú változók. Ha a fókuszban lévő objektum nem java.util.Collection típusú, akkor a kifejezés kiértékelése ExpressionException kivételt ad.



Az alábbiakban bemutatunk egy példát egy tulajdonságoldal-meghatározásra:

   

<extension point=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"XYZ Java tulajdonságok"

objectClass=

"org.eclipse.core.resources.IFile"

class=

"com.xyz.ppages.JavaPropertyPage"

nameFilter=

"*.java"

>

<filter name=

"readOnly"

value=

"true"

/>

</page>

</extension>

A class attribútumnak az org.eclipse.ui.IWorkbenchPropertyPage felületet megvalósító osztály teljes képzésű nevét kell tartalmaznia.

A munkaterület egyes objektumain vannak bejegyzett tulajdonságoldalai. A bedolgozók további tulajdonságoldalakat jegyezhetnek be ezen objektumokhoz. A tulajdonságoldalak nem korlátozódnak a munkaterület erőforrásaira: a munkaterületen megjelenő összes objektum (még a bedolgozók által létrehozott, tartományspecifikus objektumok is) rendelkezhetnek tulajdonságoldalakkal és más bedolgozó bejegyezhetnek hozzájuk tulajdonságoldalakat.