[GEF] EditPolicy - LAYOUT_ROLE & PRIMARY_DRAG_ROLE



일반적으로 GEF 에서 EditPart 에

EditPolicy.LAYOUT_ROLE

로 editpolicy 를 install 하게 됩니다.




이렇게 처리할 경우 생성이나 이동, 리사이징에는 별 무리 없이 사용할 수 있을 것이라 생각하였으나 한가지 문제가 있었습니다. 다른 자식 피규어와 겹칠경우 정상적으로 이동이 되지 않는 것이었습니다.

LAYOUT_ROLE

로는 다른 자식 피규어 위에서 이동하는 것에 대한 이벤트를 잡지 않는 것으로 파악이 되었습니다. 그래서 조금 찾아보니 될 것만 같은 것이 있어서 한번 수정한 후 실행을 해보았습니다.





그냥 한번 해보았을 뿐인데... 원하는 결과가 나와버렸습니다. 그래서 구글에서 좀 찾아보니 아래와 같은 자료가 있었습니다.


Because of the relationship between handles and layouts, it is recommended that the




PRIMARY_DRAG_ROLE




editpolicy be installed by the parent's




LayoutEditPolicy


, which defines abstract methods for this purpose. If a container changes layout managers during editing, typically the layout policy gets swapped with one for the new layout manager. The new policy then replaces the stale


PRIMARY_DRAG_ROLE




policies on each child.



무신 말씀을 하시는지는 정확하게 파악을 하지 못하였으나 잘 돌아가주시니 감사할 따름입니다.




[참고자료] GEF Guide - Moving and Resizing




뭐 해결했다는게 중요한게 아닙니까 하하하하;;;;






댓글

가장 많이 본 글