[dw리뷰] 이클립스 3.3에서 추가된 메뉴 확장법
원문기사: http://www.ibm.com/developerworks/kr/library/os-eclipse-3.3menu/
이클립스 3.3에는 새로운 메뉴 확장 아키텍처가 추가되었습니다. 물론 기존 방식도 여전히 사용가능합니다만, 훨씬 간편해졌습니다.
- 기존에는 여러가지 action 확장(actionSets, viewActions, editorActions, popupMenus 등)을 사용해서 action이 적용되는 대상에 따라 전부 개별적으로 확장을 정의했습니다만 이제는 org.eclipse.ui.menus 확장 하나에서 메뉴 또는 툴바버튼이 들어갈 위치를 URI로 지정할 수 있습니다.
- org.eclipse.ui.handlers 확장은 3.1부터 지원하던 것이긴 하지만 menus 확장은 직접 delegate class를 지정하지 않고 command만 참조하기 때문에 command의 실행을 담당하는 handlers 확장(IHandler 인스턴스 선언)을 필히 사용해야 합니다.
- action 확장에서 nested element로 정의하거나 별도의 클래스를 따로 만들어야 하던 action enablement를 새로 추가된 org.eclipse.core.expressions.definitions 확장을 사용해서 좀 더 선언적으로 정의할 수 있습니다.
기존에 난립하던 action 확장들과 action delegate class 유형이 각각 menus 확장과 handlers 확장 하나로 정리되어 깔끔하네요. 또한 관련된 모든 것이 Command를 중심으로 연관되어 있으므로, 동일한 동작에 대해 액션 위치마다 구현하던 Action Delegate들보다 Handler 쪽이 구현 및 관리가 훨씬 쉽겠습니다.
이와 같은 내용을 한번 정리해야지 하고 있었는데 마침 developerWorks에 튜토리얼로 올라왔습니다. 아직 번역기사가 제공되진 않습니다만 예제 위주 튜토리얼이니 보기에 부담스럽진 않겠습니다. 3.3 대응 플러그인을 개발하고 계신 분은 참고하세요!
