GEF는 MVC 구조랍니다. 그 구조에 맞게 한번 도전~
Model 의 생성
이 튜토리얼에서 만들 모델은
BodyElement
와
SimpleElement
를 만들어볼 예정입니다.
BodyElement
는 최상위 모델이고
SimpleElement
들을 자식요소로 갖게됩니다.
일단 가장 기본이 되는 모델을 생성합니다.
model 패키지를 추가하여
ElementBase
클래스를 생성합니다.
좌표와 위치를 저장하는 layout 과 자식요소, 부모요소를 저장하는 변수를 갖게됩니다.
이번에는
BodyElement
클래스를 생성합니다. 아직까지는 구현할게 없네요~
자식요소로 사용할
SimpleElement
클래스를 생성합니다.
Figure 의 생성
model 이 데이터를 저장하는 부문이라면 figure 는 화면에 그려지는 역할을 한다고 보면 될 것 같습니다.
마찬가지로 model 별로 figure 클래스를 생성합니다.
BodyElement
를 처리할
BodyElementFigure
를 생성합니다.
모델도 데이터가 별로 없으므로 간단하게 선 굵기를 2로 하고 선 색을 회색으로 설정했습니다.
이번에는
SimpleElement
를 처리할
SimpleElementFigure
를 생성합니다.
폰트를 설정해보려고 했는데 폰트 크기외에는 설정이 잘 안되었습니다 (-_ㅜ)
setOpaque()
메소드는 투명하게 하는 것으로 생각됩니다만.. 정확하게는...
SWT 개발하듯이 draw2d 를 이용하게 화면을 구성하면 그대로 표시가 되네요~~~
EditPart 의 생성
figure 를 생성하고 model 의 편집을 지원하는 EditPart 를 추가할 차례입니다.
model 과 마찬가지로 editpart 들이 같은 기능들을 처리하므로 base 클래스를 만듭니다.
ElementPartBase
class
: 처리하는 일은 자식요소들을 반환하는 정도??
(20080719 추가) ㅎㅎ;; createEditPolicies() 메소드를 빼먹었었네요;;;
BodyElementPart
class
:
BodyElement
를 관리하는 EditPart 입니다.
BodyElementFigure
를 생성하는 기능 외에는...
SimpleElementPart
class
:
SimpleElementFigure
를 생성하고
SimpleElement
를 통해서 그려주는 로직을 처리합니다.
이러한 EditPart 를 생성해주는 Factory 클래스를 생성합니다. (Factory 클래스를 등록하면 자동으로 연결이 되는 구조입니다.)
ElementEditPartFactory
class
:
EditPartFactory
를 생성합니다. createEditPart() 메소드 에서 모델에 따른 EditPart 를 생성합니다.
GraphicalEditor 의 수정
EditPartFactory 를 등록하고 기본적으로 화면에 그려질 EditPart 를 설정합니다.
이래해서 다시 테스트로 띄워보면~
참고
테스트로 띄우는 application 의 크기가 너무 작아 고민이라면
ApplicationWorkbenchWindowAdvisor
클래스를 수정하면 됩니다~
댓글
댓글 쓰기