2011-03-14 12 views
0

私はEclipse製品を開発しています。プラグインにナビゲータビューを追加しました。これで、デフォルトアクションの一部を削除し、カスタムアクションを追加することで、コンテキストメニューをカスタマイズしたいと考えています。Eclipse Navigator contextMenu

メニューからアクションを削除するにはどうすればよいですか?そして私の行動をどうやって追加できますか?

コンテキストメニューを作成する方法はありますか?

答えて

1

終わりに、私はこの方法で解決:

  • 私は がo.e.ui.navigator.viewerを拡張ナビゲータビューアを、作成した、と私は "allowPlatformContributions = false" に指定するポップアップメニューを提供 。 その後、コンテキストメニューに必要な数のinsertionPoint を作成しました。 のアクションは、 のコンテキストメニューで提供されるeclipseが、 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メソッドである必要があります)。今は私はEclipseソースにアクセスできません。

これが役に立ちます。

1

o.e.ui.navigator.navigatorContentを拡張し、actionProviderを提供する必要があります。

+0

yes..itです。 – hara

関連する問題