ExpandableComposite
toimii samalla tavalla kuin Group
-ohjausobjekti. Se voi
pienentää sivun osan, jossa on käytettävissä vaihdon ohjausobjekti:
ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE| ExpandableComposite.CLIENT_INDENT); ec.setText("Expandable Composite title"); String ctext = "Luodaan niin pitkä teksti, että "+ "sitä voi käyttää ExpandableComposite-ohjausobjektin sisältönä. "+ "ExpandableComposite-ohjausobjektin avulla joko piilotetaan tai esitetään teksti"+ "käyttämällä vaihdon ohjausobjektia."; Label client = toolkit.createLabel(ec, ctext, SWT.WRAP); ec.setClient(client); ec.addExpansionListener(new ExpansionAdapter() { public void expansionStateChanged(ExpansionEvent e) { form.reflow(true); } });
ExpandableComposite
-ohjausobjekti kelpuuttaa lukuisia tyylejä, jotka
vaikuttavat sen
ulkoasuun ja toimintaan. TREE_NODE
-tyyli luo vaihdon ohjausobjektin, jota käytetään
rakenteen widget-toiminnossa solmujen laajentamiseen ja pienentämiseen. TWISTIE
taas luo
kolmenvälisen vaihdon. EXPANDED
luo ohjausobjektin laajennetussa alkutilassa. Jos
käytössä on COMPACT
-tyyli, ohjausobjekti ilmoittaa pienennetyn tilan leveyden, jotta
sivun osa mahtuu otsikkoriville (esimerkiksi pienennetyssä tilassa osa on niin kapea kuin mahdollista). CLIENT_INDENT
-tyyli
sisentää asiakasobjektin siten, että se on tasattu otsikon kanssa (muuten asiakasobjekti
tasataan vaihdon ohjausobjektin kanssa).
ExpandableComposite-ohjausobjekti hahmontaa vaihdon ohjausobjektin ja otsikon. Asiakasobjektiksi määritetään laajentava tai pienentävä ohjausobjekti. Huomaa, että asiakasobjektin pitää olla ExpandableComposite-ohjausobjektin suora alielementti.
ExpandableComposite-ohjausobjekti aloittaa
ExpansionEvent
-ohjausobjektit, kun
laajennustila muuttuu. Ohjausobjektiin pitää lisätä laajennuksen kuuntelutoiminto, jotta lomakkeen teksti
voidaan kierrättää tilan muuttuessa. Laajennus muuttaa ExpandableComposite-ohjausobjektin kokoa,
mutta muutosta ei kuitenkaan tapahdu ennen kuin pääobjektia seuraavan kerran asetellaan. Siksi
muutos pitää pakottaa.
Section
on ExpandableComposite-ohjausobjektin
aliluokka, joka lisää ylimääräisiä
toimintoja. Sen avulla lomake yleensä pilkotaan lohkoiksi, joista jokaisella on oma otsikko ja
valinnainen
kuvaus. Kun käytössä on tyyli
Section.TITLE_BAR
tai tyyli Section.SHORT_TITLE_BAR
, otsikon alueen
koristelut edistävät ryhmittelyä.
Toisin kuin ExpandableComposite
, Section
käsittelee laajennuksen
tilan muutoksen yhteydessä tapahtuvat tekstin kierrätykset automaattisesti. Laajennuksen tilan muutoksista
ilmoittamista voi käyttää myös lohkon sisällön lazy-luontiin, joka tapahtuu vasta laajennuksen jälkeen.