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. |
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ä.
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.
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.
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.