컴포넌트 프레임워크

보기 및 편집기에 부분이라고 하는 단순 API를 제공하면 컴포넌트 프레임워크는 기존 부분이 중첩 및 작성되도록 허용합니다. 컴포넌트 프레임워크 API에서는 클라이언트가 임의의 SWT 컴포지트 내부 부분을 인스턴스화할 수 있고, 글로벌 오브젝트에 도달하기 보다 사이트에서 로컬 인터페이스와 부분적으로 통신하여 견고성과 누출 증명을 향상시키고, 클라이언트가 사이트에서 사용할 수 있는 인터페이스 설정을 확장할 수 있고, 클라이언트에 프레임워크를 제공하여 보기 및 편집기에 사용할 수 있는 같은 API를 통해 클라이언트 고유의 재사용 가능한 컴포넌트를 작성합니다. 컴포넌트 프레임워크에서는 또한 아토믹 조작을 사용하여 부분의 구성 및 제거를 허용하고 기존 부분이 새 사이트 인터페이스를 사용할 수 있습니다.

NameViewNew 이미지 보기

이 단순 예제에서는 이름, 제목 도구 팁 및 이미지를 설정하는 보기를 제공하고 컴포넌트 프레임워크를 사용하여 편집기나 보기를 작성하는 방법을 보여 줍니다. 컴포넌트 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 확장점을 등록하도록 선택하면 이 클래스는 추가 수정 없이 편집기로 사용할 수 있습니다.