Mukautetut widget-toiminnot

Voit laajentaa SWT-ympäristöä toteuttamalla omia mukautettuja widget-objekteja. SWT-ympäristössä on paketti org.eclipse.swt.custom, jonka sisältämät mukautetut ohjausobjektit eivät sisälly SWT-ohjausobjektien ydinjoukkoon, mutta joita tarvitaan käyttöympäristön työympäristön toteutukseen.

Ohjausobjekti
Käyttötarkoitus
CBanner CBanner-ohjausobjektia käytetään työympäristössä työkalupalkkialueen ja perspektiivin vaihtimen työkalupalkin asetteluun.
CCombo Vastaa Combo-ohjausobjektia, mutta CCombo-ohjausobjektin kokoa voi muuttaa pystysuunnassa, jolloin sen voi sovittaa taulukon soluihin.
CLabel Vastaa Label-ohjausobjektia, mutta tukee tekstin lyhennystä kolmella pisteellä. Tukee myös aktiivisessa työympäristössä näkyvän taustavärin liukuvärjäystehostetta. Ei tue rivitystä.
CTabFolder Vastaa TabFolder-ohjausobjektia, mutta tukee visuaalisen ulkoasun lisämäärityksiä välilehtien (ylhäällä tai alhaalla) ja reunusten osalta.
CTabItem Valittavissa oleva käyttöliittymän objekti, joka vastaa sivun välilehteä CTabFolder-ohjausobjektissa.
SashForm Yhdistelmäohjausobjekti, joka asettelee aliobjektit riveille tai sarakkeisiin ja erottelee ne Sash-ohjausobjektin avulla, jolloin käyttäjä voi muuttaa niiden kokoa.
ScrolledComposite Yhdistelmäohjausobjekti, joka vierittää sisältöään ja valinnaisesti venyttää sisältöä niin, että sisältö täyttää käytettävissä olevan tilan.
StyledText Muokattavissa oleva ohjausobjekti, joka sallii käyttäjän kirjoittaa tekstiä. Ohjausobjektin sisällä olevilla tekstialueilla voi olla eri värejä ja fonttityylejä.
ViewForm ViewForm-ohjausobjektilla sijoitetaan työympäristössä näkymän nimiö, työkalupalkki tai valikon paikallinen palkki sekä määritetään kyseisen kohteen koko.

Mukautetun widget-objektin toteutus

Kun olet todennut tarvitsevasi mukautettua widget-objektia ja olet päättänyt, mitä käyttöympäristöjä objektin tulee tukea, voit toteuttaa widget-objektin useilla eri menetelmillä. Menetelmiä voidaan yhdistellä sen mukaan, mitä vaihtoehtoja perustana olevan käyttöjärjestelmän käyttöympäristössä on käytettävissä.

Alkuperäinen toteutus

Jos sovellus vaatii alkuperäisen widget-objektin, joka ei sisälly SWT-ympäristöön, kyseinen objekti on toteutettava alkuperäisenä. Kyseessä voi olla käyttöympäristön widget-objekti, kolmannen osapuolen widget-objekti tai jokin muu widget-objekti käyttöympäristöjen yhteiskäytössä olevassa kirjastossa. Täydellinen esimerkki alkuperäisen mukautetun widget-objektin toteutuksesta on englanninkielisessä artikkelissa Creating Your Own Widgets using SWT.

Aiemmin luotujen widget-objektien yhdistys

Widget-objekteja voidaan yhdistää, niin että tulokseksi saadaan edistyneempiä widget-objekteja. Esimerkiksi Combo-objektin voi toteuttaa käyttämällä widget-tekstinsyöttöobjektia sekä painiketta ja avattavaa luetteloa. Yhdistetty widget-objekti toteutetaan luomalla Composite-luokan aliluokka, ja aliobjekteja hallitaan sisäisesti.

Yksinkertainen esimerkki on CCombo-ohjausobjektin kuvauksessa.

Mukautetun piirroksen toteutus

Joissakin tilanteissa käytettävissä ei ole alkuperäistä koodia tai aiemmin luotuja widget-objekteja, jotka auttavat uuden widget-objektin toteutuksessa. Tällöin widget-objekti on piirrettävä itse maalaustapahtuman käsittelytoiminnossa. Menetelmä voi muodostua varsin monimutkaiseksi, mutta sen avulla voidaan toimittaa täysin siirrettävissä oleva toteutus.

Mukautetut piirretyt ohjausobjektit toteutetaan muodostamalla Canvas- tai Composite-luokan aliluokka. Muodosta aliluokka luokasta Canvas, jos widget-objekti ei sisällä aliobjekteja.

Mukautetun piirretyn widget-objektin sisäiseen toteutukseen liittyvät yleensä seuraavat päätehtävät:

Monet org.eclipse.swt.custom-paketissa toteutetut widget-objektit käyttävät tätä menetelmää. Yksinkertainen esimerkki on CLabel-ohjausobjektin kuvauksessa.

Lisätietoja mukautetuista widget-objekteista on englanninkielisessä artikkelissa Creating your own widgets using SWT.