이 튜토리얼에서 만들 모델은 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 클래스를 수정하면 됩니다~
이클립스 RCP 입문서. 이 책은 이클립스를 사용해서 빠르고 효율적으로 크로스플랫폼 데스크탑 애플리케이션을 개발하는 방법을 설명한다. 데스크탑 애플리케이션 개발 플랫폼으로서 이클립스의 강력함과 완성된 RCP 애플리케이션을 실제로 개발하는 과정을 단계별로 살펴본다. 또한 동적으로 확장가능한 조립식 시스템을 개발하는 방법과 서드파티 코드 라이브러리 사용, 여러 환경에 대한 애플리케이션 배포 등 다양한 기법을
RCP와 GEF에 관심은 많지만 주변에 아는 사람도 없고 해서 책에 의존해야 하는 실정에...