org.eclipse.ui.popupMenus链接显示为灰色

时间:2015-12-01 08:12:15

标签: java eclipse eclipse-plugin

我创建了自己的eclipse视图,并尝试在弹出菜单中添加链接。我能够添加链接,但它变灰了。我想知道如何激活链接。我只想点击链接并触发run()。 DeleteAction是我想要触发的类。 SegmentReferencesView是我创建的视图。非常感谢你的帮助。

这是来自plugin.xml:

<extension point="org.eclipse.ui.popupMenus">    
  <viewerContribution     
        id="se.test.views.categories.segmentreferences.ui.views"
        targetID="se.test.views.categories.segmentreferences.ui.views.SegmentReferencesView">
     <action
           class="se.test.views.categories.segmentreferences.ui.views.DeleteAction"
           enablesFor="1"
           icon="icons/Delete.gif"
           id="se.test.views.categories.segmentreferences.ui.views.DeleteReferenceAction"
           label="Do action"
           menubarPath="additions-ext"> 
     </action>
  </viewerContribution>

这是Java类:

public class DeleteAction implements IViewActionDelegate {

    @Override
    public void init(org.eclipse.ui.IViewPart view) {
        super.init(view);       
    };

    @Override
    public void run(IAction action) {       
    }
}

2 个答案:

答案 0 :(得分:0)

您的观点必须设置视图网站&#39;选择提供商&#39;。菜单系统使用它来查找所选内容。如果您使用的是TableViewerTreeViewer,则可以执行以下操作:

getSite().setSelectionProvider(viewer);
在您创建viewer(应该是TableViewerTreeViewer)之后的视图代码中

答案 1 :(得分:0)

我设法通过在DeleteAction类中扩展org.eclipse.core.commands.AbstractHandler来获得工作链接。我不知道这是否是最好的方法,但它现在正在运作。

public class DeleteAction extends AbstractHandler implements IViewActionDelegate {

    @Override
    public void init(org.eclipse.ui.IViewPart view) {
    // Not used
    }

    @Override
    public void run(IAction action) {       
       System.out.println("run"); //$NON-NLS-1$
    }

    @Override
    public void selectionChanged(IAction action, ISelection selection) {
       // Not used
    }

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
       return null;
    }

}