'Mouse'에 해당되는 글 1건

  1. 2010.10.06 그림 한 장으로 보는 GEF 1편 - 마우스 클릭 2

마우스 클릭 시나리오

마우스 -> Tool: 클릭
Tool -> EditPart: 드래그 트래커 요청
EditPart --> Tool: 드래그 트래커
Tool -> DragTracker : 마우스 이벤트
DragTracker -> DragTracker : 리퀘스트 생성
DragTracker ->EditPart: 리퀘스트
EditPart -> EditPolicy*: 리퀘스트 전달
EditPolicy* -> EditPart: Command
EditPart -> Tool: Command
Tool -> Tool: 커맨드 수행
Tool -> 마우스: 복귀

개체의 역할 설명

  • Tool: 대게의 그래픽 편집이 그러하듯, UI이벤트는 일차적으로 툴에게 전달됩니다. 툴은 상태기반 머신의 일종으로, 대게는 마우스 아래에 있는 에디트파트나, 현재 선택된 에디트 파트와 연동하게 됩니다. 이 때, 그 연동의 역할을 수행하는 것이 DragTracker입니다. Selection Tool은 EditPart에게 드래그 트래커를 요청하고, 이벤트를 전달합니다. 예를 들어 선택된 에디트파트의 드래그 트래커에게 마우스가 눌렸다는 사실을 통보하고, 이 드래그 트래커는 선택 요청(SelectionRequest) 객체를 만들게 됩니다.
  • DragTracker: 드래그 트래커는 Selection Tool을 도와주는 객체입니다. 다른 툴들은 보통 드래그 트래커를 사용하지 않습니다. 대부분의 작업은 Selection Tool에 의해 이루어지므로(선택, 이동, 크기 조절, 입양, 직접 편집 삭제 등등), 드래그 트래커는 매우 중요한 역할을 하며, 각 파트의 동작을 개인화 하는 주요 진입점이 됩니다. 드래그 트래커는 셀렉션 툴이 전달한 UI이벤트를 바탕으로, Request 객체를 만들어 EditPart에 전달합니다.
  • 에디트 파트는 최상위 CEO급 컨트롤러이므로, 이 시퀀스 다이어그램에서 나타난 롤만을 설명합니다. 에디트 파트는 Request를 받으면, 자기 자신이 가진 편집 정책(EditPolicy)들에게 이 요구를 전달하고, 편집 정책들이 특정 행동을 하게 하거나, 정책들이 반환 해준 Command를 다시 툴에게 전달합니다.
  • EditPolicy: 기본적으로는 요구를 받으면, 해당 요구를 분석하여, 모델을 수정하는 커맨드를 만들어 리턴합니다. 독자적으로 호스트를 감시하면서 동작을 개인화 하기도 합니다.
  • 사족

    Posted by 지이이이율
    ,