view、editor上下文菜单

org.eclipse.ui.popupMenus

允许添加到其它视图和编辑器的弹出菜单,可以创建viewerContributionobjectContribution

viewerContribution:导致菜单出现在视图或编辑器的弹出菜单中,与选择无关。

objectContribution导致菜单出现在选定了指定类型的对象的视图或编辑器中,与选择有关。

viewerContributiontargetID为视图或编辑器的ID。例如#TextEditorContexteclipse平台默认编辑器的上下文菜单ID

(注:要想显示添加的弹出菜单,必须先给vieweditor添加弹出菜单,createPartControl中设置):

TreeView上添加弹出菜单:(treeViewview上的控件)

  //初始化弹出菜单  

MenuManager menuManager=new MenuManager();

Menu menu=menuManager.createContextMenu(treeViewer.getControl());

treeViewer.getControl().setMenu(menu);

 //设置选择提供者和弹出菜单  

      getSite().setSelectionProvider(treeViewer); 

      getSite().registerContextMenu(menuManager, treeViewer); 

 

直接为view添加弹出菜单:

   @Override

   public void createPartControl(Composite parent) {

      // 初始化弹出菜单

      MenuManager menuManager = new MenuManager();

      Menu menu = menuManager.createContextMenu(parent);

      parent.setMenu(menu);

      // 设置选择提供者和弹出菜单

      getSite().setSelectionProvider(null);

      getSite().registerContextMenu(menuManager, null);

   }


2  objectContribution

<objectContribution

            adaptable="false"

            id="hoodman.objectContribution1"

            objectClass="hoodman.object1">

      </objectContribution>

objectClass设置的类或接口起到过滤作用,选择的对象必须为其子类或者实现借口,弹出菜单才会响应。

objectContribution下可以建action,menu,filter,visible,enablement

objectContribution应用十分广泛,可以根据识别的不同内容弹出不同的菜单,具体用法可以参考http://blog.csdn.net/kevin99zhang/archive/2007/12/04/1917157.aspx


 

你可能感兴趣的:(eclipse,UI,.net,Blog)