ExpandableComposite
werkt ongeveer zoals een Group
-besturingselement
met de mogelijkheid om een deel van een pagina uit/samen te vouwen via een schakelfunctie:
ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE| ExpandableComposite.CLIENT_INDENT); ec.setText("titel van uitvouwbaar samengesteld item"); String ctext = "Nu maken we een lang stuk tekst zodat "+ "we deze kunnen gebruiken als content voor de uitvouwbaar samengesteld item. "+ "Het uitvouwbare samengestelde item wordt gebruikt om de tekst af te beelden of te verbergen "+ "met de schakelfunctie."; Label client = toolkit.createLabel(ec, ctext, SWT.WRAP); ec.setClient(client); ec.addExpansionListener(new ExpansionAdapter() { public void expansionStateChanged(ExpansionEvent e) { form.reflow(true); } });
U kunt voor het besturingselement ExpandableComposite
een aantal stijlen gebruiken om
de presentatie en het gedrag ervan te wijzigen. Met de stijl TREE_NODE
maakt u eenzelfde soort
wisselknop als in een boomstructuurwidget voor het uitvouwen en samenvouwen van knooppunten.
Met de stijl TWISTIE
maakt u een wisselknop in de vorm van een driehoekje. Als u EXPANDED
gebruikt, wordt het besturingselement oorspronkelijk afgebeeld in uitgevouwen toestand. Als u de stijl COMPACT
gebruikt, wordt het besturingselement zo ver samengevouwen dat alleen de titelregel er nog in past
(het element wordt in de breedte zo compact mogelijk gemaakt). Tot slot, met CLIENT_INDENT
wordt de client uitgelijnd met de titel (anders wordt de client uitgelijnd met de wisselknop).
Het uitvouwbare samengestelde item is verder zelf verantwoordelijk voor de rendering van de wisselknop en de titel. Het uit-/samenvouwbesturingselement wordt ingesteld als client. Houdt er rekening mee dat de client een direct onderliggend item van het uitvouwbare samengestelde item moet zijn.
Als de uitvouwtoestand van een samengesteld item wordt gewijzigd, wordt een ExpansionEvent
-object
gegenereerd. Om het formulier te vernieuwen bij een statuswijziging, moet aan het besturingselement
een uitvouwlistener worden toegevoegd. Dit komt doordat door het uitvouwen de grootte van het uitvouwbare
samengestelde item verandert, maar deze wijziging pas zichtbaar wordt wanneer de bovenliggende layout opnieuw wordt
opgebouwd (daarom moeten we deze bewerking forceren).
Section
(sectie) is een subklasse van het uitvouwbare samengestelde item met
aanvullende voorzieningen. Deze wordt gewoonlijk gebruikt om een formulier onder te verdelen
in een aantal secties met elk een eigen titel en een optionele beschrijving. Met de stijl
Section.TITLE_BAR
of Section.SHORT_TITLE_BAR
kunt u de decoraties
rond het titelgebied nog verder groepsgewijs specificeren.
In tegenstelling tot ExpandableComposite
, worden stroomherberekeningen vanwege
uitvouwstatuswijzigingen door Section
wél automatish uitgevoerd. Een ander voordeel
van uitvouwstatusinitiëringen is de vertraagde aanmaak van de content van Section, die
wordt uitgesteld totdat de sectie wordt uitgevouwen.