`

通过TreeColumn实现“表格树”TableTree

    博客分类:
  • SWT
 
阅读更多

通过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) {
            
        }
        
    }
 

 

 

分享到:
评论

相关推荐

    extjs 可编辑的表格树 Ext.tree.ColumnTree Ext.tree.ColumnTreeEditor

    extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....

    JFace-TableTree的若干问题.doc

    在Windows XP上,TableTree组件在展开或收缩节点时,列宽会保持不变,但在OS X中,当树节点被展开时,包含树的列会自动扩展,导致后续的列部分隐藏在Sash(分割条)下面。这个问题出现的原因可能与不同操作系统下...

    EXTJS动态树的实现举例示例代码

    在EXTJS中,动态树的实现主要依赖于`Ext.tree.Panel`类和`Ext.data.TreeStore`类。`TreeStore`负责管理树的数据源,而`TreePanel`则用于展示这些数据。以下是一个简单的EXTJS动态树实现的步骤: 1. **定义数据模型...

    Extjs的tree

    ExtJS的Tree组件是Sencha ExtJS框架中的一个重要部分,用于构建可交互的树形结构数据展示。在ExtJS中,TreePanel是用来显示和操作树形数据的主要组件,它可以用于组织层次化的信息,如文件系统、组织架构或者分类...

    4.0Ext 树型结构

    树面板与数据存储之间的交互通过节点接口(The Node Interface)实现。这个接口封装了模型实例,提供了额外的方法和属性来适应树控件的特殊状态。例如,你可以改变树的外观,通过设置`useArrows`为`true`来隐藏边线...

    treegrid的使用详解

    总结,TreeGrid是jQuery库中的一个强大工具,它通过树形结构展示表格数据,使得信息层次更清晰。理解并掌握JSON数据格式、配置选项以及基本的实现方法,是有效利用TreeGrid的关键。在实际项目中,可以根据需要对...

    Extjs之tree

    Tree组件是ExtJS中的一个核心组件,它能够以可交互的树形结构展示数据。每个节点都可以包含子节点,并且可以通过展开和折叠操作来控制显示的层次。Tree组件不仅支持静态数据,也支持动态加载数据,即按需加载节点。 ...

    swt创建tree的例子

    在实际应用中,你可以通过递归或者循环来动态加载大量数据,或者自定义TreeColumn来展示多列数据。SWT还提供了许多高级特性,如Tree的拖放操作、图像支持、检查框等等,可以根据需求进行深入学习和使用。

    Extjs4的TreeGrid例子

    TreeGrid是ExtJS提供的一种复合组件,它结合了树形视图和数据网格的功能,允许用户同时展示层次结构数据和表格数据。在"Extjs4的TreeGrid例子"这个主题中,我们将深入探讨TreeGrid的各种特性,以及如何在实际项目中...

    SWT扩展

    通过`TableColumn`和`TreeColumn`可以定义列的显示属性,而`TableItem`和`TreeItem`则用于添加和管理具体的数据项。 **3. 图形与图像** SWT的`GC`(Graphics Context)类允许开发者进行复杂的图形绘制,包括直线、...

    Ext Js权威指南(.zip.001

    7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 7.5.14 store管理器:ext.data.storemanager / 369 7.6 综合实例 / 369 7.6.1 远程读取json...

    TreePanel基本使用

    EXT是Sencha公司开发的一款强大的JavaScript前端框架,用于构建富客户端Web应用。它提供了一整套组件化的UI元素,使得开发者能够轻松...实际应用中,开发者可以根据需求灵活配置和扩展,以实现更复杂的树形视图功能。

    JavaScript Event学习第五章 高级事件注册模型

    JavaScript中的事件处理是Web开发中的核心概念,它允许开发者响应用户的交互。...这两种模型都是为了解决早期Netscape事件处理方式的问题,即无法绑定多个事件处理函数。 **W3C模型** W3C DOM层面的事件规范提出了`...

    org.eclipse.swt.win32

    org.eclipse.swt.custom.TableTree.class org.eclipse.swt.custom.TableTreeEditor.class org.eclipse.swt.custom.TableTreeItem.class org.eclipse.swt.custom.TextChangeListener.class org.eclipse.swt.custom....

    Next Suite VCL v.6.0.60 D6-XE10.2

    Including treeColumn, a default column that can be added and modified like any other column. Support for Unicode string (WideString) in cell, header, and footer Supports both Delphi (VCL) Visual ...

Global site tag (gtag.js) - Google Analytics