회사에서 사용하는 DB 미들웨어 서버에 config 로 쓰이는 파일에는 이런저런 기능들이 많이 들어가 있어서 좀 복잡하다. 그래서 에디터가 이클립스 플러그인(eclipse plugin)으로 만들어져 있는데, 이게 약간 불편한 점이 있다. 그래서 개발자한테 소스를 받아서 주말동안 공부삼아 고쳐보았다.
목표는 2가지.
config 파일에 대한 outliner 를 제공하는데 이게 sorting 이 안된다. 파일이 점점 길어지고 (Element 가 점점 많아지고) sorting 이 안된 상황에서는 웹개발자들이 자신이 추가한 Element 를 outliner 에서 찾기 위해 Element 의 이름을 임시로 "___________" 또는 "AAAAAAAAAA" 식으로 만드는 안습(?)의 상황이 연출되곤 했다. 그래서 outliner 에 toggle 가능한 Sort 버튼 추가.
옆자리 개발자분이 outliner 에서 Node 를 하나 누를 때마다 옆에 있는 Editor 와 위치가 sync 가 되어서 보던 위치를 자꾸 잃어버려서 불편하다고 한다. 그래서 outliner 에 toggle 가능한 Link With 버튼 추가.
그래서 이클립스의 플러그인 구조를 대략적으로 훑어보게 되었는데 너무 복잡해서 잘 이해가 가지 않았다. 책이라도 하나 사서 봐야겠다.
내가 하려는 것은 Viewer 만 건드리면 되는 것이라 전체 구조를 잘 이해하지 못해도 패치가 가능했다.
이클립스의 outliner 는 보통 TreeViewer 인데 대략 아래 그림과 같은 구조를 가지고 있다.
저 Viewer 에 Action 을 두가지(sorting 과 link with) 넣어주고 그걸 outliner 의 ToolBar 에 아이콘과 함께 삽입해주면 되는 것이다.
tutorial web page 들은 모두 Viewer 로 설명을 해놓았는데, 이클립스도 계속 발전하는지라 실제 내가 받은 플러그인은 Page 라는 것으로 구성이 되어 있었다. -_-; (어느 것이 최신인지는 잘 모르겠다;) 갑자기 책을 사는 것이 망설여졌다. 괜히 샀는데 옛날꺼면 돈만 날리는 거니깐.
여튼 그냥 Action 들을 만들고, sorter 라든가 listener 같은 것들을 잘 붙여주니 잘 동작했다.
before / after 스샷을 찍어봤는데 별 차이는 없구나. -_-;;
가장 큰 난관은 웃기게도 아이콘 붙이기였다. -_-; 설명 예제들은 모두 xml 에다가 icon 파일을 기술하고 그게 자동으로 붙게 되어 있는데, 내가 받은 소스는 outliner 가 Viewer 로 구성되어 있지 않아서 그게 불가능했다. 그래서 소스상에서 직접 붙이게 되었는데, 검색도 많이 해보고 이것저것 해봤는데 잘 안되더라.(심지어 icon 그림 파일의 절대 경로까지 넣어봤다;) 그냥 아이콘 없이 갈까.. 하다가 화룡점정이란 심정으로 계속 삽질을 해봤다. 해답은 아래 url 에서 찾을 수 있었다. Activator 에서 아이콘들을 초기화하고 ImageRegistry 에 등록한 후 불러다 쓰는 방식. 누군진 모르지만 감샤 (__) http://www.roubenmeschian.com/blog/?cat=6