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
автоматически восстанавливает макет при изменении своего состояния.
Также, содержимое секций может создаваться не сразу, а только при разворачивании.