Eclipse Form 3.3
[lang_ko] 이 문서는 Eclipse Corner에 등록된 Eclipse Form관련 3.3 추가 기능내용을 간단히 소개하고 있습니다. 필요한 경우 코드샘플을 포함한 원문을 살펴 보세요.
요약
- 타이틀에 그라데이션 추가
- 툴바 레이아웃 변경
- 메시지 핸들 / 메시지 매니저 추가
- 드롭 다운 메뉴 지원
- 드래그앤 드랍 지원
- 섹션 배치 조정 지원
[/lang_ko][lang_ko]
Title Rendering

기본적으로 폼의 헤더는 위의 이미지와 같이, 폼의 배경과 같은 색으로 랜더되었었습니다. 이제 폼 헤더에 그라데이션을 추가할 수 있는 간단한 매커니즘이 추가되었습니다.

클라이언트는 이 그라데이션을 조정하기 위해서 다음과 같은 상수들을 직접 접근할 수 있습니다.
- H_GRADIENT_START
- H_GRADIENT_END
- H_BOTTOM_KEYLINE1
- H_BOTTOM_KEYLINE2
Toolbar Layout Changes
개발자들이 Eclipse Form을 여러가지 목적을 위해, 더 복잡하고 다양한 용도로 사용하기 시작했습니다. 예전의 Eclipse Form에서는 헤드 클라이언트를 추가하면 폼의 제목과 같은 줄에 위치했었지만, 이제 두번째 줄을 이용할 수 있습니다. (여전히 기본적으로는 이전의 방식으로 동작하지만 다음 코드를 이용하여 두번째 줄에 배치할 수 있습니다. form.setToolBarVerticalAlignment(SWT.BOTTOM)

Message Handling
Rich User Interface 설계의 중요한 영역중 하나는 사용자가 실수를 했을 때, 즉시 그것을 알리고 수정하는 것을 돕는 것입니다. 대부분의 경우 복잡한 폼에서 시각적 효과 없이 무엇이 잘못 입력되었는지 알아내는 것은 어려운 일입니다.
이러한 이유로 3.3에서 에러메시지 핸들링 프레임 워크가 향상되었습니다. IMessageProvider 에서 정의된 메시지 타입들은 이제 폼의 헤딩 영역으로 자동(By Defalut)로 표시되게 됩니다. 이때 static text로 표시되긴 하지만, IHyperlinkListener를 이용하여 메시지를 클릭했을때, 적절한 동작을 취하게 할 수 있습니다. (에러를 유발한 입력 필드로 포커스를 이동시킨다던지…)

Drop-Down Menus
복잡한 폼일수록 더 많은 상호작용을 요구하게 됩니다. 이러한 상호작용을 쉽게 개발하기 위해서 새로운 메뉴 메니저가 지원되었습니다.

Drag and Drop Support
몇몇 경우에서 폼이 다른 워크밴치 컴포넌트에게 의미 있는 객체를 표현하고 있을지도 모릅니다. 예를 들어 폼을 기반으로 한 에디터가 어떠한 파일을 참조하거나 할경우 드래그앤 드롭이 가능하다면 편리할 것입니다. Form.addTitleDragSupport()와 Form.addTitleDropSupport()를 이용하여 DND를 지원할 수 있습니다. 보다 자세한 정보를 원하면 Eclipse Corner의 Form의 javadoc과 Adding DND to an SWT Application 아티클을 읽어 주세요.
Section Improvements
섹션은 폼의 구조적인 블록으로서 사용되고 있습니다. 보통 섹션은 여러개의 컬럼을 갖도록 디자인됩니다. 하지만 섹션이 가진 텍스트 클라이언트들이 자신의 타이틀보다 긴 내용을 가지고 있다면, 타이틀은 이에 맞추어 길어집니다. 불행하게도 이건 그다지 보기 좋지 않은 모양이 되 버립니다.
3.3에서 디자이너들에게 이러한 제약을 줄수 있는 새로운 API가 ExpandableComposite에 추가 되었습니다.

getTextClientHeightDifference()를 이용하여 동일한 높이로 정렬한 모습

Custom Alignment없이 섹션을 표시한 모습
Shared-Header Form Editor
org.eclipse.ui.forms.editor.FormEditor 클래스는 폼 페이지를 이용한 멀티 페이지 에디터의 시작점을 제공합니다. 이런 경우 폼페이지들은 동일한 타이틀(제목과 툴바 등등)을 갖게 됩니다. 이전에는 일일히 동일한 타이틀을 추가해야 했으나 이제 이것을 공유할 수 있게 되었습니다.
Message Manager
위에서 언급했듯이 폼 헤더에 메시지를 보여주는 것이 가능해졌습니다. 다양한 메시지들을 좀더 쉽게 다루기 위해, IManagedForm을 통해 메시지 매니저가 추가되었습니다. 메시지 메니저는 IMessageManager 라는 인터페이스 형태로 제공됩니다.
메시지 메니저는 여러개의 메시지를 추적하고 에러에 따라 해당 폼 필드에 간단한 그래픽 아이콘을 표시하고, 여러개의 에러메시지를 간추려 보여 줄 수 있습니다.
[/lang_ko]
Tags: Eclipse