2017-01-10 5 views
1

RCP 애플리케이션 메뉴로 작업하고 있습니다. 아래 이미지에서 알 수 있듯이 RCP 응용 프로그램과 함께 제공되는 공짜 메뉴의 끝에 새로 추가 된 도움말 메뉴를 이동하려고합니다. 현재 코드는 ActionBarAdvisor에서 파생 된 클래스를 사용하여 menubar에 추가합니다. public class ApplicationActionBarAdvisor extends ActionBarAdvisor 사용할 수있는 다른 방법을 살펴보면 사용하기에 흥미로운 appendToGroup 방법을 볼 수 있습니다. 유일한 것은 groupName이 필요하고 하나도 가지고 있지 않다는 것입니다. 내가 사용하고있는 메뉴 ID가 groupName만큼 충분하지 않은 것 같습니다. 여기 기존 RCP 앱 메뉴 끝에서 맞춤 menuManager 이동

Where I want the menu to go

는 고정 내 코드

@Override protected void fillMenuBar(IMenuManager menuBar) 
{ 
    MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP); 
    //menuBar.appendToGroup(menuBar.getId(), helpMenu); 
    menuBar.add(helpMenu); 
    helpMenu.add(aboutAction); 
} 

enter image description here

입니다 그것을

enter image description here

답변

0

사용자 지정 메뉴를 프로그래밍 방식으로 만드는 것이 최선의 방법은 아닙니다. plugin.xml extensions 탭을 사용하여 메뉴를 만든 다음 텍스트 필드 오른쪽에있는 All Extensions의 위/아래 버튼을 사용하여 각 메뉴의 위치를 ​​다시 정렬 할 수 있습니다. 따라서이 경우 Eclipse의 기본 제공 도움말 메뉴를 사용하는 것이 훨씬 쉽습니다. 이 모든 작업은 바로 plugin.xml 파일에서 다른 메뉴 후 도움말 메뉴를 추가하여 다시 시작됩니다

``` <extension 
    point="org.eclipse.ui.menus"> 
    <menuContribution 
     locationURI="menu:org.eclipse.ui.main.menu"> 
    <menu 
      label="File"> 
     <command 
       commandId="org.eclipse.ui.file.exit" 
       label="Exit"> 
     </command> 
     <command 
       commandId="org.eclipse.ui.file.save" 
       label="Save" 
       style="push"> 
     </command> 
    </menu> 
    <menu 
      label="Help"> 
     <command 
       commandId="org.eclipse.ui.help.aboutAction" 
       label="About"> 
     </command> 
     <command 
       commandId="org.eclipse.ui.help.helpSearch" 
       label="Search"> 
     </command> 
    </menu> 
    </menuContribution>``` 

은 해당 지역의 최종 결과 사진 : 나는

0

당신이 정상 Eclipse를 사용하는 RCP에 추가하는 경우 ActionBarAdvisor (WindowActionBuilder) 기존 창 및 도움말 메뉴 앞에 위치한 ID가 IWorkbenchActionConstants.MB_ADDITIONS 인 그룹 마커가 있습니다.

때문에 사용이 메뉴를 찾을 수 있습니다 ID IWorkbenchActionConstants.M_HELP이있는 기존 도움말 메뉴가

:

IMenuManager helpMenu = menuBar.findMenuUsingPath(IWorkbenchActionConstants.M_HELP); 

그런 다음 메뉴에 정의 된 그룹이 없습니다 ActionBarBuilder에 따라 자신의 작업 표시 줄 빌더를 작성하는 경우가 관리자가 아니며 appendToGroup을 사용할 수 없습니다. 메뉴를 표시 할 순서대로 add으로 전화하면됩니다.

+0

이를 이해하지 못했다 여기를로드 할 수 없습니다 솔루션을 제공합니다. MenuManager helpMenu를 사용해서는 안된다는 귀하의 의견을 번역합니까? 대신 그것을 IMenuManager로 변경 한 다음 IWorkbenchActionConstants.MB_ADDITIONS라는 그룹에 추가하십시오. – kloklo90

+0

나는 두 가지 해결책을 제시 했으므로 둘 중 하나를 사용할 수 있습니다. MB_ADDITIONS와 자신의 메뉴를 사용하거나 기존 도움말 메뉴에 추가하십시오. –

+0

괜찮아요. 그러면 두 옵션이 저에게 효과적이지 않습니다. (위의 사진 참조) – kloklo90