RCP/SWT & JFACE

Draw2d 설명

반응형

Draw2d 툴은 사용자가 좋아하는 모든 외형과 기능을 포함함 GUI 컴포넌트를 만들  있게 한다.

 

Draw2d 기본 클래스

클래스

기능

유사 SWT 클래스

LightweightSystem

이미지를 만들기 위한 상위 레벨 환경

Display

Figure

LightweightSystem 내에 컴포넌트 또는 컨테이너

Shell, Control, Composite

Graphics

Figure 내에 그래픽 영역을 제공GC

GC

 

 

LightweightSystem 클래스는 Display 클래스와 유사하다시각적으로 보여주는 것은 없지만이벤트 핸들링을 제공하고 외부환경과상호 작용을 하는 역할을 한다. LightweightSystem 클래스는 운영체제와  떨어진 계층에서 작동한다.

 

Draw2d 기본적인 구조는 Canvas -> Lightweight System -> Container Figure -> 다수의 figure/Graphics

 

 

 

Figure 객체의 메소드

 

SWT Control 클래스와 마찬가지로 Figure 클래스는  프로퍼티를 조작하기 위한 많은 메소드를 가지고 있다크게 하단의 4가지로나눠서 설명할  있다.

  1. Figure 객체의 외형을 이용한 작업
  • Figure 객체의 경계위치크기 값을 얻어내고설정하는 것을 포함한다. Figure 객체의 경계선 크기와 실제 영역 뿐만 아니라 최대최소 크기도 제어할  있다또한 Figure 객체의 전경색과 배경색을 변경하고 컨트롤 외형에 관련된 매개변수를 얻어내고설정하는 방법을 제공한다.
  1. 이벤트 핸들링
  • Draw2D 이벤트 핸들링 과정 또한 SWT 비슷하지만 개의 새로운 이벤트와 리스너를 제공한다. SWT 달리, Figure 객체는 여러가지 자신만의 이벤트를 다룰  있다전체 리스터의 목록과 이벤트 핸들링 메소드는 다음과 같다.
  • Draw2d 리스너

    이벤트 핸들링 메소드

    addFocusListener()

    Handlefocusgained()

    handleFocusLost()

    addKeyListener()

     

    handleKeyPressed()

    handleKeyReleased()

    addMouseListener()

    handleMouseDoubleClicked()

    handleMousePressed()

    handleMouseReleased()

    addMouseMotionListener()

    handleMouseDragged()

    handleMouseEntered()

    handleMouseExited()

    handelMouseHovered()

    handelMouseMoved()

    addListender()

     

    addAncestorListener()

     

    addFigureListener()

     

    addPropertyChangeListener()

     

 

  1. 부모와 자식의 관계 정보 유지
  • SWT Jface Composite 클래스를 제공하여 다른 컴포넌트에 컴포넌트를 추가하는 것을 허용한다그러나 Draw2D에서는 Figure 객체에 따라 컨테이너일 수도 있고컨테이너에 포함될 수도 있다.  Figure 언급하기 위해 부모(parent)라는 용어를 사용하고내부에 포함되는 Figure 언급하기 위해 자식(child)이라는 용어를 사용한다.

메소드

기능

Add(Figure, Object, int)

주어진 제약 조건을 가진 자식 Figure 객체와 List 인덱스를 추가한다.

getChildren()

자식 Figure 객체의 List 반환한다.

getParent()

Figure 객체의 부모 Figure 객체를 반환한다.

setChildrenEnabled(boolean)

Figure 객체의 자식을 사용 가능하게 하거나 금지한다.

setConstraint(Figure, object)

주어진 자식 Figure 객체의 제약 조건을 지정한다.

 

SWT에서 button 객체와 Label 객체는 생성자에서 부모를 명시하여 Composite 자신을 추가한다. Draw2D에서는 부모 Figure 객체가 자식 List 객체에 Figure 객체를 포함하기 위해 add() 메소드를 사용한다 메소드는 부모 List 객체에 임의에 제약 사항(자식 객체의 크기 또는 위치 )이나 인덱스를 선택적으로 포함할  있따부모 Figure getChildren() 메소드를 이용하여  List 객체를 얻을수 있고자식 객체는 getParent() 이용하여 부모에게 접근할  있다부모는 또한 setChildrenEnabled() 이용하여 자식 객체를 허용하거나 금지 시킬  있고, setConstraint() 이용하여 자식의 제약사항을변경할  있다.

  1. 그래픽 관리
  • Draw2D SWT GC 대부분의 임무를 수행하는 Graphics 클래스를 제공하지만, Figure 객체는 자기만의  가지 그래픽 메소드를 가지고 있다 paint() 이용하여 화면 표시를 제어   있을  아니라어떤 부분을 보여줄지 선택하기 위한 paintBorder() paintClientArea() 사용할  있다. Figure 객체는 paintChildren() 이용하여 자식 객체를 보여줄  있고오직 자기 자신을 보여주기 위해서는 paintFigure() 사용한다또한 SWT 비슷하게 작동하는 여러 가지 repaint() 메소드도사용 가능하다. Draw2D 사용자가 선택한 위치에 대한 정보를 얻기 위한 메소드를 포함한다특히 Draw2D 정확한 마우스위치를 다루는 반면 SWT 오직 선택된 Control 고려한다는 점이 다르다관련 메소드로는 FindMouseEventAt(), FindFigureAt() 등이 있다.

 

 

Figure  객체

결론부터 말하면 SWT 객체가 액션 리스너, view  가지고 나타내지만 Firgure 나타내는 개체와 그의 액션 리스너등을 가진 객체가 서로 상이하다.

  1. Label 객체
  • Draw2D Label 객체는 SWT Label 객체와 비슷하지만텍스트 크기 측정과 이미지 위치를 더한  많은 메소드를 포함하고 있다.
  • getTextBounds() getTextLocation() 통해 Lable 객체의 문자열 매개변수의 화면 출력 크기를 측정할  있다또한 Lable 객체와 이미지와 관련되어 있다면, getIConBounds() getIconAlignment() Image 대한 정보를 제공한다.
  1. Clickable 객체
  • Button Toggle 클래스를 포함하고 있는  클래스는 사용자에게 필요한 선정과 관련된 이진 정보를 제공한다. SWT button 객체와 같이, Button Toggle 클래스는 서로 동일하게 동작한다하지만 두개의 서로 다른점이 존재한다.
  •  째로 Clickable 객체는 Draw2D Figure 객체의 모든 외형을 가질  있다둘째 Clickable 이벤트 핸들링과 함께 동작한다.
  • Draw2D 사용자 인터페이스는 일반적으로 SWT Jface 생성된  보다  복잡하다.

 

 

LayoutManger Pane 사용

-SWT Layout 클래스처럼, LayoutManger 자식 컴포넌트를 콘테이너에 어떻게 배치하고 크기를 정할지 결정한다.

Draw2D Pane객체(ScrollPane, LayerPane) SWT Composite 같이 배경 컨테이너 역할을 한다.

 

LayoutManger 하위 클래스 이해

Figure 자신의 자식 객체들(button, Layout)등을 생성할때 먼저 figure.setLayoutManger() 통해서 설정해주어야 한다.

 

 

메소드

기능

ABstractHintlayout

다른 곳에 설정한 값을 가져와 자식 Figure 객체의 크기를 결정하는 Hint  제약 조건을 사용한다.

DelegatingLayout

자식 객체가 Locator 제약조건에 따라 자신의 크기를 지정하는 것을 허용한다.

XYLayout

Rectangel 제약 조건에 따라 자식 객체의 크기와 위치를 지정하는 책임을 부모에게 부여한다.

 

LayeredPane

  • Figure 객체를 보여주기 위한 여러 단계를 제공한다투명한 Layer객체를 사용하여 사용자 GUI 외관 그래픽을 구분할  있다 Layer 각각의 프로퍼티를 따로 갖고 있고 구분된 LayoutManger 가지고 있다.
  •  중의 하나인 FreeFormLayeredPane 원하는 방향으로 윈도우를 확장할  있다그리고 또다른 종류인 ScalableLayeredPane 윈도우 영역안에서 확장이 가능한다.

 

Graphics 클래스의 사용

  • DecisionFigure : 조건을 나타내는 도형 개의 입력과  개의 출력( 또는 아니오)
  • ProcessFigure  따라 일어나는 행동을 나타내는 도형 개의 입력과  개의 출력
  • TerminatorFigure 플로우차트의 시작 또는 끝을 나타낸다시작으로 사요한다면 오직 출력이 연결될 것이고끝으로 사용한다면 오직 입력이 연결될 것이다.

 경우에, Figure 크기는 bounds라고 불리는 변수에 의해 제어된다. Figure 텍스트는 message 문자열에 설정된다 제약 사항들은 Figure 클래스의 외부에서 제어되므로아직 그것을   없을 것이다.

 

 

Figure Figure 서로 연결하기 위해서는 FixedAnchor 불리는 ConnectionAnchor 객체가 필요하다는 것을 의미한다 

반응형

'RCP > SWT & JFACE' 카테고리의 다른 글

JFace TreeViewer설명  (0) 2016.12.24
IWizardPage 인터페이스  (0) 2016.12.24
Drag & Drop 구현 방법  (0) 2016.12.24
이벤트로 받은 키보드 멀티 인식 방법  (0) 2016.12.24
RCP 확장점 소개  (0) 2016.12.24