eclipse-rcp problem : context menu added by viewer

2019-09-03 07:48发布

问题:

 <extension
       point="org.eclipse.ui.popupMenus">
    <viewerContribution
          id="com.amarsoft.sysconfig.plugin.ConnectionsViewPopupContribution"
          targetID="com.amarsoft.sysconfig.plugin.views.ConnectionsView">
       <action
             class="com.amarsoft.sysconfig.plugin.actions.OpenConnectionAction"
             id="com.amarsoft.sysconfig.plugin.actions.OpenConnectionAction"
             label="打开"
             menubarPath="additions">
       </action>
    </viewerContribution>
 </extension>

but when I open the com.amarsoft.sysconfig.plugin.views.ConnectionsView view right click ,nothing happened...

I will edit my post to add any information needed , as now I dont know what may cause this problem.

回答1:

In order for org.eclipse.ui.popupMenus or org.eclipse.ui.menus (preferred) to be able to contribute to a view context menu, that view must register the menu with the framework, usually in createPartControl(Composite). ex:

MenuManager contextManager = new MenuManager();
contextManager.setRemoveAllWhenShown(true);
Menu contextMenu = contextManager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(contextMenu);
getSite().registerContextMenu(contextManager, viewer);

You can create a sample plugin and generate the view template, and it will provide an example of hooking up to a TreeViewer. If you don't use JFace viewers, then you need to provide an implementation of org.eclipse.jface.viewers.ISelectionProvider.



回答2:

Unless you're targeting Eclipse 3.3 or before, consider moving to the new extension points. See this blog entry for more information...

UPDATED_ link



标签: eclipse-rcp