보기 및 편집기에 부분이라고 하는 단순 API를 제공하면 컴포넌트 프레임워크는 기존 부분이 중첩 및 작성되도록 허용합니다. 컴포넌트 프레임워크 API에서는 클라이언트가 임의의 SWT 컴포지트 내부 부분을 인스턴스화할 수 있고, 글로벌 오브젝트에 도달하기 보다 사이트에서 로컬 인터페이스와 부분적으로 통신하여 견고성과 누출 증명을 향상시키고, 클라이언트가 사이트에서 사용할 수 있는 인터페이스 설정을 확장할 수 있고, 클라이언트에 프레임워크를 제공하여 보기 및 편집기에 사용할 수 있는 같은 API를 통해 클라이언트 고유의 재사용 가능한 컴포넌트를 작성합니다. 컴포넌트 프레임워크에서는 또한 아토믹 조작을 사용하여 부분의 구성 및 제거를 허용하고 기존 부분이 새 사이트 인터페이스를 사용할 수 있습니다.
이 단순 예제에서는 이름, 제목 도구 팁 및 이미지를 설정하는 보기를
제공하고 컴포넌트 프레임워크를 사용하여 편집기나 보기를 작성하는 방법을 보여
줍니다. 컴포넌트 API를 사용하여 소스를 표시합니다. 새 부분은 생성자에 인수를
적용할 수 있고 특정 인터페이스를 구현할 필요가 없거나 특정 기본 클래스에서
상속해야 합니다.
/**
* Sample view that sets its name, tooltip, image, and content description.
The view
* uses a custom image supplied by its plug-in.
*
* @since 3.1
*/
public class NameViewNew {
/**
* Component constructor. Do not invoke directly.
*/
public NameViewNew(Composite parent, INameable name, IPluginImages
images) {
name.setName("Name View (New)");
name.setContentDescription("content description");
name.setTooltip("This is a tooltip");
name.setImage(images.getImage("icons/sample.gif"));
// Create some bogus view contents
Label content = new Label(parent, SWT.NONE);
content.setText("View contents go here");
}
}
보기의 생성자에 지정된 인수는 이미 인수의 컨텍스트를 인식하고 있음을
주의하십시오. 예를 들어 IPluginImages 인터페이스에는 보기가 속한 플러그인을
알릴 필요가 없습니다. 마찬가지로 인터페이스는 누출에 저항합니다. 이 예제에서
보기의 이미지는 INameable 구현에 의해 자동으로 할당 및 할당 해제되므로 보기
자체는 처리 메소드를 구현할 필요가 없습니다.
보기 및 편집기용 API는 완벽하게 동일합니다. 즉, NameViewNew 클래스에
org.eclipse.ui.editors 확장점을 등록하도록 선택하면 이 클래스는 추가 수정
없이 편집기로 사용할 수 있습니다.