기본 콘텐츠로 건너뛰기
검색
이 블로그 검색
불친절한자수씨
자수씨의 보물창고
페이지
홈
더보기…
공유
공유 링크 만들기
Facebook
X
Pinterest
이메일
기타 앱
태그
Eclipse
8월 07, 2008
[RCP] DropDown Action 만들기??
저런식으로 툴바에 DropDown 메뉴를 붙이고 싶어서 ViewPart 를 F4 를 통해 콘솔뷰를 찾아서
붙이는 방법을 찾아내었습니다~~
more..
StatusDropDownAction.java
>> IMenuCreator 를 구현하는게 핵심인 것 같습니다.
public class StatusDropDownAction extends Action implements IMenuCreator,
IWorkbenchAction {
private Menu fMenu;
public StatusDropDownAction() {
setText("상태 메뉴");
setToolTipText("메신저상의 상태를 변경합니다.");
setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(
Application.PLUGIN_ID, "icons/status.png"));
setMenuCreator(this);
}
public Menu getMenu(Control parent) {
if (fMenu != null) {
fMenu.dispose();
}
fMenu = new Menu(parent);
addStatusActionToMenu(fMenu, UserStatus.Online, "온라인");
addStatusActionToMenu(fMenu, UserStatus.Away, "자리비움");
addStatusActionToMenu(fMenu, UserStatus.Busy, "다른 용무 중");
addStatusActionToMenu(fMenu, UserStatus.Phone, "통화 중");
addStatusActionToMenu(fMenu, UserStatus.Meeting, "회의 중");
addStatusActionToMenu(fMenu, UserStatus.Offline, "오프라인으로 표시");
return fMenu;
}
private void addStatusActionToMenu(Menu parent, String status, String text) {
StatusChangeAction action = new StatusChangeAction(status, text);
ActionContributionItem item= new ActionContributionItem(action);
item.fill(parent, -1);
}
public Menu getMenu(Menu parent) {
// TODO Auto-generated method stub
return null;
}
public void dispose() {
if (fMenu != null)
fMenu.dispose();
}
}
StatusChangeAction.java
>> 일반적인 Action 과 동일합니다.
public class StatusChangeAction extends Action {
public final static String ID = "kr.co.vicki.jateon.actions.statusChange";
private String status;
public StatusChangeAction(String status, String text) {
this.status = status;
setId(ID + "_" + status);
setText(text);
setToolTipText(text);
setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(
Application.PLUGIN_ID, IImageKeys.Util.statusToKey(status)));
}
@Override
public void run() {
// TODO run
}
/**
* 생성된 Action 아이디를 반환합니다.
* @return
*/
public String getActionID() {
return ID + "_" + status;
}
}
다른 Action 을 추가하는 것과 같은형식으로 붙여주면 됩니다.
IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
IWorkbenchAction statusAction = new StatusDropDownAction();
toolBarManager.add(statusAction);
샤랄라~ 내일만 회사나가면 주말~~~~~
댓글
가장 많이 본 글
1월 17, 2013
[for신규가입자] 카페 가입시 30%할인쿠폰 전원 지급!
댓글
댓글 쓰기