ZK tree使用mold

前台Tree.zul

<?page title="Tree使用" contentType="text/html;charset=UTF-8"?>

<zk xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

        xmlns="http://www.zkoss.org/2005/zul" 

        xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul">

<window title="" border="normal" apply="test.treeCtrl">

    <tree id="tree" pageSize="10" mold="paging" rows="10" >

        <treecols>

            <treecol label="Name"/>

            <treecol label="Description"/>

        </treecols>

        <treefoot>

            <treefooter label="底部"/>

        </treefoot>

    </tree>

</window>

</zk>

后台treeCtrl.java:

package test;



import java.util.ArrayList;

import java.util.List;



import org.zkoss.zk.ui.Component;

import org.zkoss.zk.ui.util.GenericAutowireComposer;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.DefaultTreeNode;

import org.zkoss.zul.Tree;

import org.zkoss.zul.Treecell;

import org.zkoss.zul.Treeitem;

import org.zkoss.zul.TreeitemRenderer;

import org.zkoss.zul.Treerow;



public class treeCtrl extends GenericAutowireComposer<Component>{

    

    private static final long serialVersionUID = 1L;

    private Tree tree;

    

    

    @Override

    public void doAfterCompose(Component comp) throws Exception {

        // TODO Auto-generated method stub

        

        super.doAfterCompose(comp);

        

        DefaultTreeModel<FileInfo> model = new DefaultTreeModel<FileInfo>(getFileInfoTreeData());

        tree.setModel(model);

        tree.setItemRenderer(new FileInfoRenderer());

    }

    

    private DefaultTreeNode<FileInfo> getFileInfoTreeData() {

        List<DefaultTreeNode<FileInfo>> inner3 = new ArrayList<DefaultTreeNode<FileInfo>>();

        inner3.add(new DefaultTreeNode<FileInfo>(new FileInfo("zcommon.jar", "ZK Common Library")));

        inner3.add(new DefaultTreeNode<FileInfo>(new FileInfo("zk.jar", "ZK Core Library")));

        

        List<DefaultTreeNode<FileInfo>> inner2 = new ArrayList<DefaultTreeNode<FileInfo>>();

        inner2.add(new DefaultTreeNode<FileInfo>(new FileInfo("/lib", "ZK Libraries"), inner3));

        inner2.add(new DefaultTreeNode<FileInfo>(new FileInfo("/src", "Source Code")));

        inner2.add(new DefaultTreeNode<FileInfo>(new FileInfo("/xsd", "XSD Files")));

        

        List<DefaultTreeNode<FileInfo>> inner1 = new ArrayList<DefaultTreeNode<FileInfo>>();

        inner1.add(new DefaultTreeNode<FileInfo>(new FileInfo("/doc", "Release and License Notes")));

        inner1.add(new DefaultTreeNode<FileInfo>(new FileInfo("/dist", "Distribution"), inner2));

        

        return new DefaultTreeNode<FileInfo>(null, inner1);

    }

    

    public class FileInfoRenderer implements TreeitemRenderer<DefaultTreeNode<FileInfo>>{



        @Override

        public void render(Treeitem item, DefaultTreeNode<FileInfo> data, int index)

                throws Exception {

            // TODO Auto-generated method stub

            

            item.setValue(data);

            final FileInfo fi = data.getData();

            item.setOpen(false);

            //for update treeNode data

            Treerow tr = item.getTreerow();

            if(tr == null) {

                tr = new Treerow();

            } else {

                tr.getChildren().clear();

            }

            item.appendChild(tr);

            //render file path cell

            Treecell pathCell = new Treecell();

            pathCell.setLabel(fi.getPath());

            pathCell.setParent(tr);

            //render file description cell

            Treecell descriptionCell = new Treecell();

            descriptionCell.setLabel(fi.getDescription());

            descriptionCell.setParent(tr);

        }



    }

    

    public class FileInfo {

        private String path;

        private String description;



        public FileInfo() {}

        

        public FileInfo(String path, String description) {

            this.path = path;

            this.description = description;

        }



        public String getPath() {

            return path;

        }



        public void setPath(String path) {

            this.path = path;

        }



        public String getDescription() {

            return description;

        }



        public void setDescription(String description) {

            this.description = description;

        }

    }

    

}

 参考:

http://zkfiddle.org/sample/21g0stt/2-Another-new-ZK-fiddle#source-1

你可能感兴趣的:(tree)