ExpandableComposite
는 토글 제어를 사용하여 페이지 일부를 접을 수 있는 기능이 있는
Group
제어와 유사하게 작동합니다.
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); } });
ExpandableComposite
제어는 모양과 동작에 영향을 주는
여러 스타일을 허용합니다. TREE_NODE
스타일은
노드를 펼치고 접기 위한 트리 위지트(widget)에 사용되는 토글 제어를 작성하는 반면,
TWISTIE
는 삼각형 스타일의 토글을 작성합니다. EXPANDED
를 사용하면
초기에 펼쳐진 상태에서 제어가 작성됩니다. 스타일 COMPACT
를 사용할 경우,
제어는 제목줄에만 맞도록 접혀진 상태로 너비를 보고합니다(즉, 접힌 경우
가능한 한 가로로 최소화됩니다).
마지막으로, CLIENT_INDENT
는 제목에 맞추도록 클라이언트를
들여쓰기합니다(그렇지 않으면 클라이언트는 토글 제어에 맞춰집니다).
펼칠 수 있는 컴포지트 자체가 토글 제어 및 제목을 렌더링해야 합니다. 펼치거나 접기 위한 제어는 클라이언트로 설정됩니다. 클라이언트는 펼칠 수 있는 컴포지트 바로 아래에 있는 하위 요소여야 합니다.
펼칠 수 있는 컴포지트는 펼침 상태가 변경될 때 ExpansionEvent
오브젝트를
가동시킵니다. 펼침 리스너를 제어에 추가하는 것은 상태 변경 시
양식을 리플로우하기 위해 필요합니다. 이는 펼칠 경우 펼칠 수 있는 컴포지트 크기는 변경되지만
그 변경은 다음에 상위 요소가 레이아웃될 때까지 적용되지 않기 때문입니다(따라서
사용자가 강제 실행해야 합니다).
Section
은 추가적 기능을 추가하는 펼칠 수 있는 컴포지트의 서브클래스입니다.
일반적으로 양식을 여러 섹션으로 나누기 위해 사용됩니다. 각각의 섹션에는
고유한 제목과 선택적 설명이 있습니다.
Section.TITLE_BAR
또는 Section.SHORT_TITLE_BAR
스타일을 사용할 경우,
제목 영역 주변을 데코레이션하면 그룹화가 더 향상됩니다.
ExpandableComposite
와는 달리, Section
은
펼침 상태 변경 시 자동으로 리플로우를 처리합니다. 펼침 상태 알림의 다른 흥미로운 사용으로는
섹션을 펼칠 때까지 지연되는 섹션 컨텐츠의 느린 작성이 있습니다.