RCP应用程序上下文中缺少当前选择

时间:2017-12-01 09:37:24

标签: command eclipse-rcp eclipse-3.6

要在命令处理程序中获取当前所选对象,我执行

HandlerUtil.getCurrentSelection(event);

从事件中存储的应用程序上下文中查找当前选择。

但是,我正在寻找一个返回null的错误,尽管我可以清楚地看到桌面上的选择。

我在相应的表查看器中添加了一个选择侦听器:

tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

    @Override
    public void selectionChanged(SelectionChangedEvent event) {
        LOGGER.trace(event);
    }
});

我可以在调用

之前看到日志输出
HandlerUtil.getCurrentSelection(event);

知道为什么命令hanlder中没有选择?

1 个答案:

答案 0 :(得分:1)

您必须为您的部件注册“选择提供程序”,以便为命令处理程序(以及其他内容)提供选择。

您可以在视图或编辑器中执行以下操作:

getSite().setSelectionProvider(selectionProvider);

其中selectionProvider是实现ISelectionProvider的东西。 TableViewerTreeViewer等JFace查看器实现此接口。