RCP/RCP

rcp 구조 및 기초

반응형

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() // 사용자가 해당 뷰를 선택하면 불러지는 메소드

{

}

 

}

 

  1. 퍼스펙티브로 워크벤치 윈도우 배치

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() 파라미터에 대한 설명이다.

  1. viewID : 뷰를 표시하는 문자열(plugin.xml에서 명시함)
  2. Relationship : 정수 값으로 기준 위도우 어디에 뷰가 위치하는지 나타낸다. (IPageLayout.TOP, IPageLayout.LEFT ……)
  3. Ratio : 실수 값으로 뷰에서 기준 윈도우 대비 어느 정도의 비율이어야 하는지 나타낸다.
  4. 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() 메소드를 이용하여 초기 크기 제목상태 표시줄툴바 설정 등을 지정한다


반응형