[GEF] 키보드 방향키로 크기/위치 제어하기
Eclipse/GEF / 2010. 10. 31. 22:53
방향키로 크기와 위치를 제어해보려고 여러 사이트를 뒤져보았으나, 속 시원한 레퍼런스를 찾기 어려워서... 그냥 마구잡이로 만들었습니다. GEF 구조를 더 잘 알았으면 EditPolicy 도 이용했을텐데... 아직 거기까지 레벨은 안되서...
GEF 는 커맨드 단위로 변경을 처리합니다. 키보드 처리를 위해서는 별도의 Command 클래스를 생성합니다.
ArrowKeyChangeLayoutCommand.java
키보드 입력을 처리하는 GraphicalViewerKeyHandler 를 상속받아 Command 를 생성하는 별도의 KeyHandler 클래스를 생성합니다.
FormWizardArrowKeyHandler.java
GraphicalEditor 를 초기화 하는 부분에 아래와 같이 설정합니다.
GraphicalViewer viewer = getGraphicalViewer();
viewer.setKeyHandler(new FormWizardArrowKeyHandler(viewer, getSite().getSelectionProvider(), getCommandStack()));
viewer.setKeyHandler(new FormWizardArrowKeyHandler(viewer, getSite().getSelectionProvider(), getCommandStack()));
GraphicalViewer 에서 Figure 를 선택하고 방향키를 누르면 위치가 이동되며, SHIFT 키를 누르고 방향키를 누르면 크기가 조절됩니다.
예전부터 묵혀두었던 문제를 처리...