별로 할 생각도 없었고 이 방법이 올바른 방법인지는 모르겠으나 후배의 부탁으로 해당 포스팅을 작성합니다.
이클립스를 쓰면서 newWizard 를 많이 보셨을 것입니다. 쓸때는 별로 생각 안했는데 그 정도의 스펙으로 구현하려면
많은 노력이 필요할 것 같아서 에이~ 뭐 안만들면 되지라는 생각도 있었습니다.
1. 일단 우리가 커스터마이징할 newWizard 를 콕 찝습니다.
General > Project 가 복잡하지도 않고 하니 그걸로 select~
2. 이클립스 가니메데의 강력한 기능 Plug-in Spy 를 통해서 어디에 있는지를 확인합니다.
org.ecilpse.ui.ide 플러그인의 BasicNewProjectResourceWizard 입니다.
각각의 해당하는 클래스와 플러그인의 링크들이 있습니다.
BasicNewProjectResourceWizard 를 확인하기 위해서 클릭합니다.
그냥 흔히 볼수있는 라인수가 긴 클래스 파일입니다.
3. 커스터마이징된 Project newWizard 를 위해 새로운 플러그인 프로젝트를 생성합니다.
프로젝트 이름이나 그런건 마음대로~~~
RCP로 만들것도 아니고 하니 그냥 디폴트 설정으로~~
템플릿 따위는 지금은 쓰지 않습니다. ㅋㅋㅋㅋㅋ
4. BasicNewProjectResourceWizard 파일을 자신의 프로젝트에 복사
생성된 프로젝트 구조입니다.
나중에 newWizard 에 사용되는 아이콘도 추가되었으나 이미 캡쳐된 것을 그냥 사용합니다. (귀찮아서가 아닙니다...)
원본 소스에서 package 아랫부분부터 복사해서 Package Explorer 에서 복사하고 싶은 패키지를 찍고 붙여넣기를 하면 아래와 같이 자동으로 소스가 만들어집니다.
근데 에러가 좀 나네요. 이건 플러그인 디펜던시 설정을 통해 해결합니다.
5. Plug-in Dependencies 설정
Add 버튼을 통해 import 에 빨간줄 간 것들을 하나씩 찾아서 추가해 줍니다.
아래와 같이 6개 정도를 추가하면 에러는 없어지게 됩니다.
소스상에서 발생되는 오류는 Ctrl + Shift + O (Organize Import) 를 통해 없애줍니다.
아마도 extends BasicNewResourceWizard 에서 BasicNewResourceWizard 클래스의 import 가 안되서 그랬을 것입니다.
6. 새로운 newWizard 의 추가
카테고리와 방금 복사해온 wizard 를 추가합니다.
아래와 같이 설정하고, category 필드는 위에서 만들었던 category::id 의 값을 주거나 그냥 빈값으로 주셔도 됩니다.
7. 이제 해당 플러그인이 추가된 이클립스를 띄웁니다.
별도의 설명은 하지 않겠습니다. 이정도 작업을 하실 분이라면 잘 따라하실 수 있겠죠...
(캡쳐를 어떻게 해야할지 막막해서 그냥 패스 ㅋㅋㅋ)
8. 새로 띄워진 이클립스에서 새로운 커스터마이징 된 프로젝트를 만듭니다.
복사를 했기때문에 아주 똑같습니다.
딱! 프로젝트만 만들어졌습니다.
자신의 플러그인 소스에 wizard 클래스가 있으므로 마음껏 가지고 놀면서 익히시길 바랍니다.
모르는게 있으면 ~ 구글께 물어보세요~~