如何从自定义弹出菜单扩展的选择事件中获取选定的对象值?

How to get selected object value from selection event from customized pop-up menu extension?

我在 eclipse 视图中添加了 "Demo" 作为我的自定义弹出菜单,并且我使用了 "viewercontribution"。我的弹出菜单仅在 "x" 对象类型上可见,那么如何在我的操作 class 中获取 "x" 对象的值?

假设视图定义了一个选择提供者,您可以使用

获得活动选择
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

ISelection selection = page.getSelection();

if (selection instanceof IStructuredSelection) {
    Object selected = ((IStructuredSelection)selection).getFirstElement();

    ... cast selected to your object type
}

此外,每次更改选择时,都会调用 IViewActionDelegateselectionChanged 方法。