2013-07-11 23 views
3

参考一个表格TreeViewer,如何获取其列的列表,例如TreeViewerColumn对象?例如:如何获取jface Tree Viewer的列?

TreeViewer treeViewer = (TreeViewer)viewer; 
TreeViewerColumn[] treeViewerColumns = treeViewer.getColumns(); 

难道只是我还是没有一个明显的方法来做到这一点?

我想要做的是添加项目资源管理器中项目的编辑支持。我有项目资源管理器的树查看器的引用,但我需要获得其TreeViewerColumn做:

column.setEditingSupport(...); 

回答

3

TreeViewerColumn的引用存储在TreeColumn的数据。下面应该给你一个列表TreeViewerColumns

List<TreeViewerColumn> treeViewerColumns = new ArrayList<TreeViewerColumn>(); 
TreeColumn[] columns = treeViewer.getTree().getColumns(); 
for (TreeColumn column : columns) { 
    Object data = column.getData(Policy.JFACE + ".columnViewer"); 
    if (data instanceof TableViewerColumn) { 
     TreeViewerColumn tvc = (TreeViewerColumn) data; 
     treeViewerColumns.add(tvc); 
    } 
} 
+0

谢谢!上面的代码片段就是这样做的,但是Project Explorer的树型浏览器似乎没有显式添加列 - treeViewer.getTree()。​​getColumns()返回一个空数组。无论如何,这是另一个问题。 –

相关问题