如何从多列TreeViewer中读取所有行数据。
m_viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(final SelectionChangedEvent event)
{
IStructuredSelection selection = (IStructuredSelection)event.getSelection();
Object [] selections = selection.toArray();
}
}
此代码段仅提供选定的行值。我想读取所有数据,并在单击“保存”按钮时将其保存在xml文件中。谁能帮助我实现这个目标呢?
答案 0 :(得分:1)
从结构化选择中获得的对象是树查看器的内容提供者提供的对象。因此,您应该能够将它们转换为内容提供者使用的任何类,并从中获取数据。
这类似于传递给树查看器标签提供程序的对象。
答案 1 :(得分:0)
如果您想要序列化接近树的可视化表示的序列化,您可以访问TreeViewer的基础树并遍历其TreeItems。此处描述了此方法:Get all TreeItems in an SWT Tree
或者您考虑使用TreeViewer显示的数据模型并序列化其对象。遍历数据模型的子项可能已经在内容提供程序中实现,通常是ITreeContentProvider
或其扩展,可以重复使用。