ExpandableComposite и Section

ExpandableComposite - аналог Group с поддержкой сворачивания части страницы:

	ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), 
					ExpandableComposite.TREE_NODE|
					ExpandableComposite.CLIENT_INDENT);
	ec.setText("Expandable Composite title");
	String ctext = "Это длинный текст, не помещающийся на странице."+
	"Для наглядности его можно временно скрывать"+
	"с помощью переключателя";
	Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
	ec.setClient(client);
	ec.addExpansionListener(new ExpansionAdapter() {
		public void expansionStateChanged(ExpansionEvent e) {
			form.reflow(true);
		}
	});

ExpandableComposite имеет несколько стилей внешнего вида и поведения. Так, TREE_NODE - использовать переключатель как в иерархическом списке, а TWISTIE - использовать треугольный переключатель. EXPANDED - сделать развернутое состояние начальным. If style COMPACT - изменять ширину в свернутом состоянии так, чтобы вмещался только текст заголовка (иными словами делать ширину в свернутом состоянии как можно меньше). CLIENT_INDENT - выравнивать клиент по заголовку (иначе он выравнивается по переключателю).

ExpandableComposite непосредственно отвечает за отображение переключателя и заголовка. Управляющий элемент, который будет показываться и скрываться, называется клиентом. Клиент должен быть непосредственным потомком ExpandableComposite.

ExpandableComposite порождает объекты ExpansionEvent при разворачивании и сворачивании. Обнаружение этих действий производится с помощью ExpansionListener. Это необходимо для восстановления формы, поскольку разворачивание изменяет размер ExpandableComposite, но изменение не даст желаемого результата до следующего переразмещения родителя(поэтому это необходимо сделать принудительно).

Section - подкласс ExpandableComposite с расширенными возможностями. Обычно используется для разделения формы на несколько секций с заголовками и описаниями. Стили Section.TITLE_BAR и Section.SHORT_TITLE_BAR добавляют декорации к заголовку.

В отличие от ExpandableComposite, Section автоматически восстанавливает макет при изменении своего состояния. Также, содержимое секций может создаваться не сразу, а только при разворачивании.