我创建了自己的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) {
}
}
答案 0 :(得分:0)
您的观点必须设置视图网站&#39;选择提供商&#39;。菜单系统使用它来查找所选内容。如果您使用的是TableViewer
或TreeViewer
,则可以执行以下操作:
getSite().setSelectionProvider(viewer);
在您创建viewer
(应该是TableViewer
或TreeViewer
)之后的视图代码中。
答案 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;
}
}