ExpandableComposite
fungerer på samme måte som kontrollen
Group
, og kan komprimere en del av en side med kontroll for komprimering/utvidelse:
ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE| ExpandableComposite.CLIENT_INDENT); ec.setText("Expandable Composite title"); String ctext = "We will now create a somewhat long text so that "+ "we can use it as content for the expandable composite. "+ "Expandable composite is used to hide or show the text using the "+ "toggle control"; Label client = toolkit.createLabel(ec, ctext, SWT.WRAP); ec.setClient(client); ec.addExpansionListener(new ExpansionAdapter() { public void expansionStateChanged(ExpansionEvent e) { form.reflow(true); } });
Kontrollen ExpandableComposite
godtar en rekke stiler som påvirker
utseende og funksjonalitet. Stilen TREE_NODE
oppretter kontrollen for
utvidelse/komprimering som brukes til å utvide og komprimere noder i en tre-widget, mens
TWISTIE
oppretter et trekantsymbol. Hvis EXPANDED
brukes, opprettes kontrollen i den opprinnelige utvidede tilstanden. Hvis stilen
COMPACT
brukes, rapporterer kontrollen bredden i den komprimerte
tilstanden bare tilpasset tittellinjen (det vil si at ved komprimering er den så
kompakt som mulig vannrett). CLIENT_INDENT
rykker inn klienten som justeres med
tittelen (hvis ikke, justeres den med kontrollen for utvidelse/komprimering).
En utvidbar kompositt behandler kontrollen for utvidelse/komprimering og tittelen. Kontrollen for utvidelse eller komprimering er definert som en klient. Merk kravet om at klienten skal være direkte underordnet den utvidbare kompositten.
Utvidbare kompositter starter ExpansionEvent
-objekter når en utvidelsestilstand endres.
Det må legges til en utvidelseslytter i kontrollen for å lage skjemaet på nytt ved
en tilstandsendring. Dette skyldes at utvidelser endrer størrelsen på den utvidbare
kompositten, men endringen trer ikke i kraft før neste gang overordnet defineres (derfor må den tvinges).
Section
er en subklasse for den utvidbare kompositten som
legger til ytterligere funksjonalitet. Den brukes vanligvis for å partisjonere et skjema til en rekke
seksjoner, alle med egne titler og valgfrie beskrivelser. Når stilene
Section.TITLE_BAR
eller Section.SHORT_TITLE_BAR
brukes, forbedres
grupperingen ytterligere med dekorasjonen rundt tittelområdet.
I motsetning til ExpandableComposite
håndterer Section
automatisk
omformatering i en endret utvidelsestilstand. Andre interessante bruksområder for
varsling om utvidelsestilstand er ved lazy-opprettelse av seksjonsinnhold som forsinkes
til seksjonen utvides.