사용자 정의 Workbench 동작을 제공하는 "시작점"은 Workbench를 구성하기 위한 WorkbenchAdvisor의 지정입니다. 리치 클라이언트 플러그인은 이 추상 클래스를 확장하여 Workbench에 응용프로그램 특정 구성을 제공해야 합니다. 브라우저 예제에서는 BrowserAdvisor 클래스를 사용하여 이를 수행합니다.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
Workbench 어드바이저는 조치 표시줄 항목 또는 소개 페이지와 같은 원하는 레이아웃 및 기능으로 Workbench를 구성하는 메소드를 대체합니다.
Workbench 어드바이저에서 제공하는 라이프 사이클 메소드를 사용하면 응용프로그램이 언제든지 Workbench를 작성하고 작동에 영향을 줄 수 있습니다. 대체할 수 있는 다음 어드바이저 라이프 사이클 목록은 WorkbenchAdvisor의 javadoc에서 제공됩니다.
initialize
- 첫 번째로 호출됨. 모든 창 앞에서 항목을
등록하는 데 사용함 preStartup
- 두 번째로 호출됨. 초기화 후이지만 첫 번째 창이
열리기 전에 시작 또는 복원 중 내용을 일시적으로 사용 안함으로 설정할 때 사용함postStartup
- 세 번째로 호출됨. 첫 번째 창이 열린 후
이전 단계에서 일시적으로 사용 안함 상태인 내용을 다시 사용으로 설정하는 데 사용함postRestore
- Workbench 및 창이 이전에 저장된 상태에서
재작성된 후 호출됨. 복원된 Workbench를 조정하는 데 사용함preWindowOpen
- 각 창이 열릴 때 호출됨.
조치 표시줄이 아닌 다른 창의 모양을 구성하는 데 사용함fillActionBars
- 창의 조치 표시줄을 구성하기 위해
preWindowOpen
이후에 호출됨postWindowRestore
- 창이 이전에 저장된 상태에서
재작성된 후 호출됨. 복원된 창을 조정하는 데 사용함postWindowCreate
- 창이 초기 상태 또는 저장된 상태에서
작성된 후 호출됨. 창을 조정하는 데 사용함openIntro
- 소개 컴포넌트(있을 경우)를 작성하기 위해
창이 열리기 전에 즉시 호출됨
postWindowOpen
- 창이 열린 후 호출됨.
창 리스너 등을 연결하는 데 사용함preWindowShellClose
- 사용자가 창의 쉘을 닫을 때 호출됨.
창 닫기를 사전 검사하는 데 사용함eventLoopException
- 이벤트 루프가 손상된 문제를 처리하도록
호출됨. 내용이 좋은 상태가 아님을 사용자에게 알리는 데 사용함eventLoopIdle
- 현재 처리될 이벤트가 더 이상 없을 때
호출됨. 기타 작업을 수행하거나 새 이벤트가 대기열에 진입할 때까지
진행하는 데 사용함preShutdown
- 이벤트 루프가 종료된 후이지만 어느 창도
닫히기 전에만 호출됨. 응용프로그램이 시스템 종료를 거부할 수 있도록 함postShutdown
- 이벤트 루프가 종료되어 모든 창이 닫힌 후
마지막으로 호출됨. 초기화 중 등록된 내용을 다시 등록하는 데 사용함보는 바와 같이 리치 클라이언트 응용프로그램에는 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() 메소드 사용을 참고하십시오. IWorkbenchConfigurer 및 IWorkbenchWindowConfigurer는 WorkbenchAdvisor와 함께 창을 사용자 정의하는 데 사용됩니다. 이 클래스를 사용하면 다른 레벨에 있는 Workbench 작성의 여러 측면을 대체할 수 있습니다. 예를 들어 IWorkbenchWindowConfigurer는 조치 표시줄, 상태 표시줄, Perspective 표시줄, 쿨 표시줄 등과 같이 Workbench 창의 제어에 대한 특정 구성을 가정하는 프로토콜을 정의합니다. 이 프로토콜로 이러한 항목을 사용자 정의하고 채울 수 있습니다. IWorkbenchConfigurer는 높은 레벨에서 작동하기 때문에 Workbench에 응용프로그램 특정 데이터를 저장할 수 있습니다. WorkbenchAdvisor는 위에서 참고한 라이프 사이클 메소드로 이 구성자에 대한 액세스를 제공합니다. WorkbenchAdvisor의 낮은 레벨 메소드는 기본 동작을 완전히 바꾸도록 대체될 수 있습니다. 예를 들어 Workbench 어드바이저는 기본 창에 완전히 다른 구현을 제공하기 위해 창에 SWT 제어를 작성하는 메소드를 대체할 수 있습니다.
즉, 이 기술을 사용할 수 있는 몇 가지 다른 레벨 및 Workbench를 사용자 정의하는 방법이 다양하게 있습니다. WorkbenchAdvisor, IWorkbenchConfigurer 및 IWorkbenchWindowConfigurer의 javadoc에는 사용 가능한 프로토콜에 대한 전체 설명이 포함되어 있습니다. 또한 대체 구현에 대한 주석은 BrowserAdvisor의 전체 구현을 참조하십시오.