通过TreeColumn实现“表格树”TableTree
通过treecolumn的方式实现表格树,实现过很多次,但是每次都得自己写一遍,今天记录下来,以后捡现成的。
?
final TreeViewer viewer = new TreeViewer(shell, SWT.FULL_SELECTION); viewer.getTree().setHeaderVisible(true); TreeColumn column = new TreeColumn(viewer.getTree(), SWT.LEFT); column.setText("Name"); column.setWidth(200); column = new TreeColumn(viewer.getTree(), SWT.LEFT); column.setText("Size"); column.setWidth(100); column = new TreeColumn(viewer.getTree(), SWT.LEFT); column.setText("Hidden"); column.setWidth(100); viewer.setContentProvider(new MyTreeContenetProvider()); viewer.setLabelProvider(new MyTableLableProvider()); viewer.setInput(new File("/"));?
class MyTreeContenetProvider implements ITreeContentProvider{ public Object[] getChildren(Object parentElement) { File file=(File)parentElement; if(file.isDirectory()) return file.listFiles(); else return null; } public Object getParent(Object element) { File file=(File)element; return file.getParentFile(); } public boolean hasChildren(Object element) { File file=(File)element; return file.isDirectory()/*&&file.list().length>0*/; } public Object[] getElements(Object inputElement) { File file=(File)inputElement; return file.isDirectory()?file.listFiles():new Object[]{file}; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }?
?
class MyTableLableProvider implements ITableLabelProvider{ public Image getColumnImage(Object element, int columnIndex) { return null; } public String getColumnText(Object element, int columnIndex) { File file=(File)element; switch (columnIndex) { case 0: return file.getName(); case 1: return ""+file.length(); case 2: return ""+file.isHidden(); default: return ""; } } public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }??
?