2012. 1. 6.

이클립스 RCP 컨텍스트 메뉴 추가


http://www.vogella.de/articles/EclipseCommands/article.html
http://www.ralfebert.de/blog/eclipsercp/commands_context_menu/
http://richclientplatform.blogspot.com/2007/07/new-menu-contribution-extension.html
http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.ui.examples.contributions/


1. 메뉴확장포인트추가

eclipse.ui.menus
메뉴 컨트리뷰션의 로케이션URI 는
menu:org.eclipse.ui.main.menu?after=additions(메뉴)
toolbar:org.eclipse.ui.main.toolbar?after=additions(툴바)
menu:org.eclipse.ui.examples.contributions.view?after=additions(뷰의메뉴)
toolbar:org.eclipse.ui.examples.contributions.view?after=additions(뷰의툴바)
popup:org.eclipse.ui.examples.contributions.view?after=additions(뷰의팝업)
popup:org.eclipse.ui.popup.any?after=additions(팝업 : 모든곳)
menu:help?after=additions(도움말)
등이 가능하다.
command 태그로 command를 지정하며, 화면에 보여질 지 여부, 특정 객체를 선택했을 때
보여질지 여부 등을 제어할 수 있다.

eclipse.ui.commands
실제 수행될 커맨드를 추가한다.
커맨드는 복수의 핸들러를 두어 세부 조건에 의해 호출하는 핸들러를 변경할 수 있다.


2. 메뉴를 표시하고자 하는 뷰에 메뉴 등록
아래는 컨텍스트 메뉴를 위한 메뉴를 생성하여 뷰에 넣는 예제임

// 메뉴 매니저 생성
MenuManager contextMenu = new MenuManager();
contextMenu.setRemoveAllWhenShown(true);

// 메뉴 메니저를 WorkbenchSite에 등록
getSite().registerContextMenu(contextMenu, viewer);

// 실제 뷰컨트롤에 메뉴콤포넌트를 생성하여 등록
Control control = viewer.getControl();
Menu menu = contextMenu.createContextMenu(control);
control.setMenu(menu);

댓글 없음: