XYLayout을 잠시 살펴보도록 하자.
시작위치와 width, height 이렇게 해서 4개의 좌표가 필요하다.
이를 모델에서 저장하기 위해서는 시작위치를 가진 point 개체와 width, height를 저장하기 위한 Dimension 개체를 두개를 사용해도 되지만, 좀더 편한 방법은 4개의 좌표를 저장하기 좋은 개체인 Rectangle을 사용하면 된다. Rectangle은 필요한 4가지 값을 가질수 있다.
좌표를 가지는 개체는 부모가 아닌 자식모델이 되어야 한다. 따라서 shape에 Rectangle을 관리하도록 변경을 한다.
Draw2D에서 Figure는 서브 Figure를 가지고 있는 형태로 그려지게 된다.
즉 위의 그림처럼 A는 B, C를 가지고 있고, B는 D, E를 가지고 있을 수 있다.
이때 그려지는 방식은 상단부터 하단으로 그려지게 된다. 만약 D가 변경이 되면 D, B, A에게 변경되었졌다는 이벤트를 발생시키고, 다시 위에서 A , B, D를 그리게 되는 것이다.
호출하는 방법은 Layout에서 Figure에게 재귀적으로 Valid한지를 호출하게 되는 것이다.
따라서 Diagram이 A가 되고, 원은 B가 된다. B가 그려지기 위해서는 A가 먼저 그려지고, A의 Layout인 XYLayout에서 B를 그리게 된다.
'Eclipse' 카테고리의 다른 글
GEF - Diagram 생성 (0) | 2007.03.31 |
---|---|
상단에 탭이 있는 Dialog 만들기 (0) | 2007.03.31 |
VerifyListener로 숫자만 입력받는 방법 (0) | 2007.03.31 |