Workbench 사용자 정의

사용자 정의 Workbench 동작을 제공하는 "시작점"은 Workbench를 구성하기 위한 WorkbenchAdvisor의 지정입니다. 리치 클라이언트 플러그인은 이 추상 클래스를 확장하여 Workbench에 응용프로그램 특정 구성을 제공해야 합니다. 브라우저 예제에서는 BrowserAdvisor 클래스를 사용하여 이를 수행합니다.

	...
	int code = PlatformUI.createAndRunWorkbench(display,
			new BrowserAdvisor());
	...

Workbench 어드바이저는 조치 표시줄 항목 또는 소개 페이지와 같은 원하는 레이아웃 및 기능으로 Workbench를 구성하는 메소드를 대체합니다.

Workbench 라이프 사이클

Workbench 어드바이저에서 제공하는 라이프 사이클 메소드를 사용하면 응용프로그램이 언제든지 Workbench를 작성하고 작동에 영향을 줄 수 있습니다. 대체할 수 있는 다음 어드바이저 라이프 사이클 목록은 WorkbenchAdvisor의 javadoc에서 제공됩니다.

보는 바와 같이 리치 클라이언트 응용프로그램에는 Workbench가 구성되고 구현되는 방법에 대한 다수의 제어 방법이 있습니다. 브라우저 예제에서 BrowserAdvisor의 기본 기능은 브라우저에 대해 적절한 메뉴 항목이 있는 조치 표시줄을 구성하는 것입니다. 이것은 다음과 같이 fillActionBars 메소드로 수행됩니다.

	public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
		...
		BrowserActionBuilder builder = new BrowserActionBuilder(window);
		getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder);
		builder.fillActionBars(configurer, flags);
	}

이 메소드에서 Workbench는 특수화된 조치 빌더를 사용하여 구성됩니다. 이 조치 빌더는 Workbench의 조치 표시줄을 채우는 데 사용됩니다. 조치 정의에서 조치가 지정되는 방법을 자세히 알아 보기로 합니다. 지금은 Workbench를 구성하는 방법을 중점적으로 설명합니다.

위의 getWorkbenchConfigurer() 메소드 사용을 참고하십시오. IWorkbenchConfigurerIWorkbenchWindowConfigurerWorkbenchAdvisor와 함께 창을 사용자 정의하는 데 사용됩니다. 이 클래스를 사용하면 다른 레벨에 있는 Workbench 작성의 여러 측면을 대체할 수 있습니다. 예를 들어 IWorkbenchWindowConfigurer는 조치 표시줄, 상태 표시줄, Perspective 표시줄, 쿨 표시줄 등과 같이 Workbench 창의 제어에 대한 특정 구성을 가정하는 프로토콜을 정의합니다. 이 프로토콜로 이러한 항목을 사용자 정의하고 채울 수 있습니다. IWorkbenchConfigurer는 높은 레벨에서 작동하기 때문에 Workbench에 응용프로그램 특정 데이터를 저장할 수 있습니다. WorkbenchAdvisor는 위에서 참고한 라이프 사이클 메소드로 이 구성자에 대한 액세스를 제공합니다. WorkbenchAdvisor의 낮은 레벨 메소드는 기본 동작을 완전히 바꾸도록 대체될 수 있습니다. 예를 들어 Workbench 어드바이저는 기본 창에 완전히 다른 구현을 제공하기 위해 창에 SWT 제어를 작성하는 메소드를 대체할 수 있습니다.

즉, 이 기술을 사용할 수 있는 몇 가지 다른 레벨 및 Workbench를 사용자 정의하는 방법이 다양하게 있습니다. WorkbenchAdvisor, IWorkbenchConfigurerIWorkbenchWindowConfigurer의 javadoc에는 사용 가능한 프로토콜에 대한 전체 설명이 포함되어 있습니다. 또한 대체 구현에 대한 주석은 BrowserAdvisor의 전체 구현을 참조하십시오.