Vastuunrajoituslauseke: Eclipsen version 3.2 laajennuspiste
org.eclipse.ui.menus
on toteutettu vain osittain. Se
ei vielä tue valikko- tai työkalurivimäärityksiä tai -laajennuksia
(näihin tarkoituksiin pitäisi käyttää olemassa olevia
lisäyslaajennuksia). Tämä laajennuspiste on kuitenkin ainoa
mekanismi, jonka avulla työympäristöön voi lisätä
widget-reunusobjekteja. Tässä osiossa käsitellään sitä, miten
laajennuspistettä voi käyttää tähän tarkoitukseen.
Widget-reunusobjekti on ohjausobjekti, joka sijoitetaan reunusalueeksi kutsutulle Työympäristö-ikkunan ulkorajalle. Tavallisin esimerkki on yleisluonteinen "tilarivi", joka on melkein kaikkien graafisten käyttöliittymien ikkunoiden alaosassa. Laajennuspisteen org.eclipse.ui.menus avulla lisäosat voivat lisätä näkymiä työympäristöön. Reunuksen lisäävien lisäosien on rekisteröitävä reunus plugin.xml-tiedostoon, ja lisäksi niissä on oltava reunuksen kokoopanotiedot, esimerkiksi sen toteutusluokka, se reunusryhmä (reunuspalkki), jonka sisällä reunus on, sekä reunuksen asettelutiedot, kuten tieto siitä, käyttääkö reunus asettelun aikana hyväkseen reunusalueen mahdollisen ylimääräisen tilan.
Lisätyn reunuksen rajapinta määritetään rajapinnassa IWorkbenchWidget, mutta lisäosat voivat myös laajentaa luokkaa AbstractWorkbenchTrimWidget, mikä on suositeltavampaakin kuin toteuttaa rajapinta alusta alkaen.
Readmetool-esimerkissä on lisätty melko yksinkertainen widget-reunusolio, joka tuo näyttöön merkkijonon ja tiedon siitä, mille puolelle reunus on nyt telakoitu.
Tarkastellaan laajennuspisteen määritystä, jonka avulla tämä reunusobjekti on lisätty:
Laajennuksen ensimmäinen osa (ryhmämääritys) määrittää vain ryhmätunnuksen ja ryhmän sijainnin niin, että se on "status"-ryhmän alussa (eli alhaalla näkyvän reunusalueen alussa). Toinen osa (widget-objektin määritys) määrittää widget-objektin toteutusluokan ja lisäksi widget-objektin sijainnin edellä määritettyyn ryhmään.
Huomautus: Molemmissa tapauksissa palkin tyypiksi on määritetty trim (joka on tässä vaiheessa ainoa tuettu tyyppi).
Kun olet asentanut readmetool
-esimerkin,
kannattaa panna merkille ReadmeTrimWidget
-objektin täyttömetodi. Se
poikkeaa muista fill
-metodeista, joiden avulla
widget-objekteja lisätään työkaluriveihin tai valikoihin, koska
reunuksen voi vetää alueelta toiselle. Metodi myös mukauttaa
sivuobjektia (side), johon reunus sijoitetaan, niin että
toteutusluokka voi muuttaa widget-objektin näyttötapaa sijainnin
mukaan esimerkiksi vaihtamalla sen suuntaa. Nykytoteutuksessa
näytetty teksti muutetaan yksinkertaisesti vastaamaan nykyistä
sijaintia. Huomaa myös, miten dispose/fill-sykliä on käsitelty:
dispose
-metodia kutsutaan toistuvasti, ja
fill
-toiminto muodostuu työympäristöön tehtyjen
muutosten kautta (kun esimerkiksi perspektiivejä muutetaan tai kun
reunus vedetään toiselle puolelle).
Esimerkkikoodista ei ilmene, että reunuksen asettelunhallintaohjelman
toiminta riippuu widget-ohjausobjektin
computeSize
-metodin oikeasta toteutuksesta. Widget-objektin
täytyy pystyä laskemaan ja palauttamaan objektin ensisijainen koko,
koska tätä tietoa hyödynnetään koko asettelunhallinnan toteutuksessa
esimerkiksi sen määrittämiseen, kuinka paljon tilaa tietty reunusalue
vaatii. Lisätietoja computeSize
-metodin oikeasta
toteutuksesta on SWT-dokumentaatiossa.