Koristelutoiminnot

org.eclipse.ui.decorators

2.0

Tämän laajennuspisteen avulla voidaan lisätä koristelutoimintoja näkymiin, joissa on koristelutoimintojen hallintaohjelman tilauksia. Versiossa 2.1 käyttöympäristöön lisättiin pelkistettyjen koristelutoimintojen tuki. Tällaiset koristelutoiminnot toteuttavat koristelutoiminnon kuvien hallintatoimet. Lisäksi on mahdollista määrittää pelkistetty koristelutoiminto, jota käyttämällä voidaan sijoittaa kuvake ilman lisäosatoteutusta.

Toiminnon käyttöönotto ja/tai näkyvyys voidaan määrittää elementtien enablement ja visibility avulla. Nämä kaksi elementtiä sisältävät loogisen lausekkeen, jonka perusteella määritetään käyttöönotto ja/tai näkyvyys.

Komennon muoto on sama elementeissä enablement ja visibility. Kumpikin sisältää vain yhden loogisen lausekkeen alielementin. Elementti on yksinkertaisimmillaan objectClass, objectState, pluginState tai systemProperty. Monimutkaisissa tapauksissa looginen lauseke voidaan yhdistää elementeistä and, or ja not. Sekä elementissä and että elementissä or on oltava kaksi alielementtiä. Elementissä not saa olla vain yksi alielementti.

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

Valinnainen alielementti, jonka runko-osa on koristelutoiminnon lyhyt kuvausteksti. Tämän kuvauksen määrittämistä suositellaan, koska se näkyy koristelutoiminnon oletusasetussivulla. Oletusarvo on tyhjä merkkijono.



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

Tämän elementin avulla määritetään laajennuksen käyttöönotto.



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

Tämän elementin avulla määritetään laajennuksen näkyvyys.



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

Tämä elementti kuvaa kahden alielementtinsä lausekkeiden laskennan tuloksen totuusarvoista AND-toimintoa.



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

Tämä elementti kuvaa kahden alielementtinsä lausekkeiden laskennan tuloksen totuusarvoista OR-toimintoa.



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

Tämä elementti kuvaa alielementtiensä lausekkeiden laskennan tuloksen totuusarvoista NOT-toimintoa.



<!ELEMENT objectClass EMPTY>

<!ATTLIST objectClass

name CDATA #REQUIRED>

Tämän elementin avulla lasketaan kunkin objektin luokka tai rajapinta nykyisessä valinnassa. Jos valinnan kukin objekti toteuttaa määritetyn luokan tai rajapinnan, lauseke lasketaan todeksi.



<!ELEMENT objectState EMPTY>

<!ATTLIST objectState

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Tämän elementin avulla lasketaan kunkin objektin määritteen tila nykyisessä valinnassa. Jos valinnan kullakin objektilla on määritetty määritteen tila, lauseke lasketaan todeksi. Tällaisen lausekkeen laskemiseksi valinnan kunkin objektin on toteutettava rajapinta org.eclipse.ui.IActionFilter tai se on sovitettava siihen.



<!ELEMENT pluginState EMPTY>

<!ATTLIST pluginState

id    CDATA #REQUIRED

value (installed|activated) "installed">

Tämän elementin avulla lasketaan lisäosan tila. Lisäosan tila voi olla jokin seuraavista: installed (vastaa OSGi-käsitettä "tulkittu") tai activated (vastaa OSGi-käsitettä "aktiivinen").



<!ELEMENT systemProperty EMPTY>

<!ATTLIST systemProperty

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Tämän elementin avulla lasketaan jonkin järjestelmän ominaisuuden tila. Ominaisuuden arvo noudetaan luokasta java.lang.System.



Seuraavassa on esimerkkejä koristelutoiminnoista:

Täysin määritetty koristelutoiminto. Lisäosan sovelluskehittäjän on määritettävä kuvatuki itse.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.decorator"

label=

"XYZ-koristelutoiminto"

state=

"true"

class=

"com.xyz.DecoratorContributor"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

Pelkistetty koristelutoiminto. Määrityksessä on konkreettinen luokka, mutta koska kyseessä on ILightweightLabelDecorator-lajin luokka, määrityksessä tarvitaan vain teksti ja ImageDescriptor-elementti. Tämän takia ei tarvita resurssien käsittelytoimintoa.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.decorator"

label=

"Pelkistetty XYZ-koristelutoiminto"

state=

"false"

class=

"com.xyz.LightweightDecoratorContributor"

lightweight=

"true"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

Esittelevä pelkistetty koristelutoiminto. Konkreettista luokkaa ei ole määritetty, vaan sen sijasta on käytetty kuvakemääritystä ja kuvakkeen paikkamääritystä.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.declarative.decorator"

label=

"Esittelevä pelkistetty XYZ-koristelutoiminto"

state=

"false"

lightweight=

"true"

icon=

"icons/full/declarative.gif"

location=

"TOP_LEFT"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

Class-määritteen arvon on oltava sen luokan tarkka nimi, joka toteuttaa org.eclipse.jface.viewers.ILabelDecorator-liittymän (jos lightweight-määritteen arvo on false) tai org.eclipse.jface.viewers.ILightweightLabelDecorator-liittymän. Tämä luokka ladataan mahdollisimman myöhään, jotta koko lisäosa ladattaisiin vasta sitten, kun sitä todella tarvitaan. Esittelevät koristelutoiminnot eivät aktivoi lisäosia, ja niitä tulisi käyttää aina, kun se on mahdollista. Muut kuin pelkistetyt koristelutoiminnot tullaan poistamaan käytöstä myöhemmissä versioissa.

Lisäosat voivat lisätä tämän laajennuspisteen avulla uusia koristelutoimintoja näkymiin, joiden nimiöiden koristelussa käytetään koristelutoimintojen hallintaohjelmaa. Koristelutoimintojen hallintaohjelmaa voi käyttää määrittämällä IViewPart.getDecoratorManager()-tuloksen DecoratingLabelProvider-ilmentymän koristelutoiminnoksi. Resurssien navigaattorinäkymä käyttää tätä toimintamallia nykyisessä versiossa.