WorkbenchAdvisor( 대상 선정)
WorkbenchAdvisor는 애플리케이션 생명 주기의 각 단계전에 작업을 처리한다.
어떻게 그리고 누구를 그릴지 설정한다.
Public class ExampleAdvisor extends WorkbenchAdvisor
{
Public String getInitialWindowPerspectiveID() {
}
Public void preWindow(IWorkbenchWindowConfigurer configurer) // 워크 벤치 외양에 대한 설정
{
Configurer.setText("test");
Configurer.setInitialSize(new Point(10,10)_);
}
}
preStartup() 시작전에 나타낼 부분 사용
prewindowOpen() 윈도우 외양을 워크벤치에서 보이기 전에 설정
IWorkbenchWindowConfigurer로 외양 설정하기
작성하는 워크벤치가 이클립스와 비슷하게 보여도, RCP는 IWorkbenchWindowConfigurer보다 폭넓은 디자인 유연성을 제공한다.
메소드 | 설명 |
addEditorAreaTransfer(Transfer) | 편집기의 드래그앤드롭을 위해 Transfer 객체를 제공한다. |
configureEditorAreaDropListener(DropTargetListener) | 드래그앤드롭 이벤트를 위해 필요한 DropTargetListener를 설정한다. |
createCoolBarControl(Composite) | CoolBar내용을 받기 위한 컨트롤을 명시한다. |
createMenuBar() | 워크벤치에서 Menu를 생성한다. |
createPageComposite(Composite) | 편집기와 뷰를 위한 컨테이너를 설정한다. |
setInitialSize(Point) | 워크벤치의 초기 크기를 제공한다. |
setShellStyle(int) | 워크벤치의 Shell 객체의 스타일 비트를 명시한다. |
setShowCoolBar(boolean) | 워크벤치에게 CoolBar를 화면에 보여야 하는지 알린다. |
setShowMenuBar(boolean) | 워크벤치에게 메뉴를 화면에 보여야 하는지 알린다. |
setShowPerspectiveBar(boolean) | 워크벤치에게 다른 워크벤치 퍼스펙티브에서 선택한 바를 보여야 하는지 알린다. |
setShowStatusLine(boolean show) | 워크벤치에게 상태표시줄을 보여야 하는지 알린다. |
setTitle(String title) | 워크벤치 애플리케이션을 위해 타이틀을 명시한다. |
뷰와 퍼스펙티브 추가
1. 뷰 구축
- 뷰는 ViewPart를 확장하며, ResourceNavigator와 같이 사전에 설정한 클래스를 사용하지 않는다. 단 하나의 메소드 createPartControl(Composite)만 사용하여 뷰의 외관과 동작을 설정 할 수 있다.
Example)
Public class ExampleView extends ViewPart
{
Public void createPartControl(Composite parent)
{
}
Public void setFocus() // 사용자가 해당 뷰를 선택하면 불러지는 메소드
{
}
}
- 퍼스펙티브로 워크벤치 윈도우 배치
IPerspectiveFactory는 IPageLayout 객체를 얻어와서 워크벤치의 외양을 제공하도록 환경 설정한다. IPerspectiveFactory의유일한 메소드는 createInitialLayout(IPageLayout)로 코드를 간소화 한다.
IPageLayout의 기본 메소드
메소드 | 설명 |
addShowViewShortCut(String) | 메뉴에서 Window > Show 옵션을 생성한다. |
addView(String, int, float, String) | 명시한 위치와 크기에 주어진 ID로 뷰를 워크벤치에 추가한다. |
getEditorArea() | 워크벤치 편집기의 ID를 반환한다. |
isFixed() | 레이아웃이 변경가능한지 여부를 반환한다. |
setEditorAreaVisible(boolean) | 편집기 영역을 보일지 설정한다. |
setFiexed() | 폼에서 레이아웃을 고정할지 설정한다. |
addView는 IPageLayout에서 가장 주요한 메소드이므로 동작 과정에 대한 이해도가 필요하다. 하단에는 addView()의 파라미터에 대한 설명이다.
- viewID : 뷰를 표시하는 문자열(plugin.xml에서 명시함)
- Relationship : 정수 값으로 기준 위도우 어디에 뷰가 위치하는지 나타낸다. (IPageLayout.TOP, IPageLayout.LEFT ……)
- Ratio : 실수 값으로 뷰에서 기준 윈도우 대비 어느 정도의 비율이어야 하는지 나타낸다.
- refID L 기준 윈도우를 나타내는 문자열
Example)
Public class ExamplePerspective implements IPerspectiveFactory
{
Public void createInitialLayout(IPageLayout layout)
{
String editor = layout.getEditorArea();
Layout.addView("RCPExample.ExampleView", IPageLayout.RIGHT, 0f, editor);
Layout.setEditorAreavisible(false);
Layout.setFixed(true);
}
}
WorkbenchWindowAdvisor
- workbenchAdvisor를 통해 선정된 대상을 직접 그리는 부분
- prewindowOpen() 메소드를 이용하여 초기 크기 제목, 상태 표시줄, 툴바 설정 등을 지정한다
'RCP > RCP' 카테고리의 다른 글
RCP ActivePage Hide and Show (0) | 2016.12.24 |
---|---|
RCP ProgressDialog를 이용한 TableViewer 데이터 엑셀로 내보내기 (0) | 2016.12.24 |
RCP workbench 글로벌 후크 (0) | 2016.12.24 |
RCP ActivePage에 특정 View 열기 (0) | 2016.12.24 |
Viwer의 종류와 프로바이더 종류 및 설명 (0) | 2016.12.23 |