要在命令处理程序中获取当前所选对象,我执行
HandlerUtil.getCurrentSelection(event);
从事件中存储的应用程序上下文中查找当前选择。
但是,我正在寻找一个返回null
的错误,尽管我可以清楚地看到桌面上的选择。
我在相应的表查看器中添加了一个选择侦听器:
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
LOGGER.trace(event);
}
});
我可以在调用
之前看到日志输出HandlerUtil.getCurrentSelection(event);
知道为什么命令hanlder中没有选择?
答案 0 :(得分:1)
您必须为您的部件注册“选择提供程序”,以便为命令处理程序(以及其他内容)提供选择。
您可以在视图或编辑器中执行以下操作:
getSite().setSelectionProvider(selectionProvider);
其中selectionProvider
是实现ISelectionProvider
的东西。 TableViewer
,TreeViewer
等JFace查看器实现此接口。