如何从多列TreeViewer获取所有行数据

时间:2016-12-07 20:49:39

标签: java user-interface swt jface

如何从多列TreeViewer中读取所有行数据。

enter image description here

m_viewer.addSelectionChangedListener(new ISelectionChangedListener() {
          @Override
          public void selectionChanged(final SelectionChangedEvent event)
          {
            IStructuredSelection selection = (IStructuredSelection)event.getSelection();

            Object [] selections = selection.toArray();
          }

}

此代码段仅提供选定的行值。我想读取所有数据,并在单击“保存”按钮时将其保存在xml文件中。谁能帮助我实现这个目标呢?

2 个答案:

答案 0 :(得分:1)

从结构化选择中获得的对象是树查看器的内容提供者提供的对象。因此,您应该能够将它们转换为内容提供者使用的任何类,并从中获取数据。

这类似于传递给树查看器标签提供程序的对象。

答案 1 :(得分:0)

如果您想要序列化接近树的可视化表示的序列化,您可以访问TreeViewer的基础树并遍历其TreeItems。此处描述了此方法:Get all TreeItems in an SWT Tree

或者您考虑使用TreeViewer显示的数据模型并序列化其对象。遍历数据模型的子项可能已经在内容提供程序中实现,通常是ITreeContentProvider或其扩展,可以重复使用。