Kibontható összetétel és szakasz vezérlőelemek

Az ExpandableComposite hasonlóan viselkedik a Group vezérlőelemhez, de képes egy oldal egy részét összehúzni egy kapcsoló vezérlőelemmel:

	ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), 
					ExpandableComposite.TREE_NODE|
					ExpandableComposite.CLIENT_INDENT);
	ec.setText("Kibontható összetétel címe");
	String ctext = "Létrehozunk egy hosszabb szöveget így "+
	"felhasználhatjuk egy kibontható összetétel tartalmaként. "+
	"A kibontható összetételt szöveg elrejtésére vagy mutatására használjuk a "+
	"kapcsoló vezérlőelem használatával";
	Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
	ec.setClient(client);
	ec.addExpansionListener(new ExpansionAdapter() {
		public void expansionStateChanged(ExpansionEvent e) {
			form.reflow(true);
		}
	});

Az ExpandableComposite vezérlőelem számos stílust elfogad, melyek a megjelenését és viselkedését befolyásolják. A TREE_NODE stílus létrehozza a fa felületi elemben csomópontok kibontására és összehúzására használt kapcsoló vezérlőelemet, míg a TWISTIE háromszög-stílusú kapcsolót hoz létre. Az EXPANDED használatával a vezérlőelem kibontott kezdeti állapotban jön létre. A COMPACT stílus használatával a vezérlőelem a címsor megjelenítéséhez éppen elegendő szélességet fog jelenteni összehúzott állapotban (azaz összehúzott állapotban vízszintesen is olyan tömör lesz, amennyire lehetséges). Végül, a CLIENT_INDENT használata az ügyfelet annyira fogja behúzni, hogy a címhez igazodjon (egyébként az ügyfél a kapcsoló vezérlőelemhez lesz igazítva).

A kibontható összetétel maga a kapcsoló vezérlőelem és a cím megjelenítéséért felel. A kibontásra vagy összehúzásra szolgáló vezérlőelem ügyfélként van beállítva. Vegye figyelembe azt a követelményt, hogy az ügyfélnek a kibontható összetétel közvetlen utódjának kell lennie.

A kibontható összetétel ExpansionEvent objektumokat bocsát ki, amikor a kibővítés állapota megváltozik. Egy kibővítés figyelő hozzáadása szükséges a vezérlőelemhez az űrlap megfelelő újrarajzolásához állapotváltozás esetén. Ennek oka, hogy a kibővítés megváltoztatja a kibővíthető összetétel méretét, de a változás addig nem lép életbe, amíg a szülő legközelebb ki nem lesz rajzolva (ezért kell kényszeríteni).

A Section a kibővíthető összetétel alosztálya, amely további képességekkel egészíti azt ki. Általában egy űrlap több, saját címmel és választható leírással rendelkező szakaszba particionálására használják. A Section.TITLE_BAR vagy a Section.SHORT_TITLE_BAR stílusok használatával a címterület körüli dekoráció tovább bővíti a csoportosítást.

Az ExpandableComposite-al ellentétben a Section automatikusan kezeli az újrarajzolást a kibővítés változásakor. A kibővítési értesítések másik érdekes felhasználása a szakasz tartalmának késleltetett létrehozása, amit így a szakasz tartalmának kibővítéséig lehet késleltetni.