2011-03-14 4 views
0

이클립스 제품을 개발 중입니다. 플러그인에 탐색기보기를 추가 했으므로 기본 동작 중 일부를 제거하고 사용자 지정 동작을 추가하여 상황에 맞는 메뉴를 사용자 정의하려고합니다.Eclipse Navigator contextMenu

메뉴에서 작업을 제거하려면 어떻게해야합니까? 내 행동을 어떻게 추가 할 수 있습니까?

컨텍스트 메뉴를 만드는 방법이 있습니까?

답변

1

는 :

  • 제가 가 o.e.ui.navigator.viewer 연장 네비게이터 표시기를 생성하고, I는 "= 거짓 allowPlatformContributions" 를 지정해하여 popupMenu 제공 . 그런 다음 문맥 메뉴에 필요한만큼 많은 insertionPoint 을 만들었습니다. 액션은 에서 제공하는 이클립스가 group.new, group.edit, group.reorganize에 포함되어 있기를 바랄뿐입니다. 결과 XML은 다음과 같습니다

    <extension 
        point="org.eclipse.ui.navigator.viewer"> 
    ..... 
        <viewer viewerId="..."> 
        <popupMenu 
          allowsPlatformContributions="false"> 
         <insertionPoint 
           name="group.xvr.management" 
           separator="true"> 
         </insertionPoint> 
         <insertionPoint 
           name="group.new" 
           separator="true"> 
         </insertionPoint> 
         <insertionPoint 
           name="group.edit" 
           separator="true"> 
         </insertionPoint> 
         <insertionPoint 
           name="group.reorganize"> 
         </insertionPoint> 
         <insertionPoint 
           name="group.xvr.launch" 
           separator="true"> 
         </insertionPoint> 
        </popupMenu> 
        </viewer> 
        ... 
        </extension> 
    

    다른 두 그룹 이름, group.xvr.launch 및 group.xvr.management는 사용자 정의 내 행동에 대한 자리 표시 자입니다.

  • 는 내가 뷰어에 결합 내 사용자 지정 콘텐츠를 만드는 o.e.ui.navigator.navigatorContent 을 확장했다. 나는 네비게이터 콘텐츠에 많은 actionProvider를 추가했다. 각각 중 fillContextMenu 메서드를 재정 의하여 컨텍스트 메뉴에 사용자 정의 액션을 제공합니다. 내가 완전히 상황에 맞는 메뉴를 제어하기 위해 더 많은 일을해야 true..but

    @Override 
    public void fillContextMenu(IMenuManager menu) { 
        menu.appendToGroup("group.xvr.launch", new CommandContributionItem(new CommandContributionItemParameter(...))); 
    menu.appendToGroup("group.xvr.launch", new CommandContributionItem(new CommandContributionItemParameter(...))); 
    } 
    
0

hyou는 네비게이터보기를 확장하고 컨텍스트 메뉴를 재정의해야합니다 (createPartControl 메소드 여야 함). 지금은 이클립스 소스에 액세스 할 수 없습니다.

희망이 도움이됩니다.

1

o.e.ui.navigator.navigatorContent를 확장하고 actionProvider를 제공해야합니다. 난이 방법으로 해결 끝에

+0

yes..it이다. – hara