JFace UI 프레임워크

Workbench가 플랫폼에 UI 기능을 제공하기 위해 플러그인에 확장점을 정의한다는 것을 살펴 보았습니다. 이 확장점 중 다수인 특히 마법사 확장은 org.eclipse.jface.* 패키지의 클래스를 사용하여 구현됩니다. 어떤 속성이 있을까요?

JFace는 구현하는 데 많은 시간이 걸리는 UI 기능을 개발하기 위한 헬퍼 클래스를 제공하는 UI 툴킷입니다. JFace는 원시 위지트(widget) 시스템 레벨 위에서 작동합니다. 또한 공통 UI 프로그래밍 타스크를 처리하기 위한 클래스를 제공합니다.

JFace는 사용자가 기본 위지트(widget) 시스템이나 모든 UI 응용프로그램에서 발생하는 공통적인 문제점을 해결하는 데 초점을 맞추기 보다 사용자 특정 플러그인 기능 구현에 집중할 수 있도록 합니다.

JFace 및 Workbench

JFace가 종료되고 Workbench가 시작되는 위치는 어디일까요? 경계가 명백하지 않은 경우가 있습니다. 일반적으로 org.eclipse.jface.* 패키지의 JFace API는 Workbench 확장점 및 API에 독립적입니다. Workbench 코드를 전혀 사용하지 않고도 JFace 프로그램을 작성할 수 있다고 생각할 수 있습니다.

Workbench는 JFace를 사용하지만 가능한 한 종속성을 줄이려고 시도합니다. 예를 들어, Workbench 파트 모델(IWorkbenchPart)은 JFace에 독립적으로 설계되었습니다. JFace 클래스를 직접 사용하지 않고 SWT 위지트(widget)를 사용하여 보기 및 편집기를 구현할 수 있음을 앞서 살펴 보았습니다. Workbench는 가능한 "JFace 중립" 상태를 유지하여 프로그래머가 유용하다고 판단한 JFace의 부분을 사용할 수 있도록 합니다. 실제로 Workbench는 여러 구현에 JFace를 사용하며, API 정의에 JFace 유형 참조가 있습니다. (예: IMenuManager, IToolBarManager, IStatusLineManager에 대한 JFace 인터페이스는 Workbench IActionBar 메소드의 유형으로 표시됩니다.)

JFace API를 사용할 때 배경 스레드 사용에 대한 약속 규칙을 기억하는 것이 바람직합니다. 자세한 정보는 Workbench 및 스레드를 참조하십시오.

JFace 및 SWT

SWT와 JFace 간의 경계는 훨씬 명확합니다. SWT는 JFace나 플랫폼 코드에 전혀 의존하지 않습니다. 다수의 SWT 예가 사용자가 독립형 응용프로그램을 빌드할 수 있는 방법을 표시합니다.

JFace는 SWT 라이브러리에 더하여 공통 응용프로그램 UI 기능을 제공하도록 설계되었습니다. JFace는 SWT를 "숨기"거나 기능을 대체하려고 하지 않습니다. JFace는 SWT를 사용하여 동적 UI 프로그래밍과 연관된 다수의 공통 타스크를 처리하는 클래스와 인터페이스를 제공합니다.

JFace와 SWT 간의 관계는 표시기 및 표시기와 SWT 위지트(widget)와의 관계를 살펴 보면 가장 잘 이해할 수 있습니다.