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.