zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    day2 python基础
    day2 jmeter和charles
    nmon参数详解
    根据路径遍历该路径下的文件夹和文件并以列表形式显示出来、文件(夹)的复制
    GridView创建菜单栏
    GridView(网格视图)+MotionEvent(触控事件)实现可以拖动排序的网格图
    android 下拉刷新框架PullToRefreshScrollView(com.handmark.pulltorefresh)
    android轮播图的实现原理
    自定义进度条渐变色View
    android显示通知栏Notification以及自定义Notification的View
  • 原文地址:https://www.cnblogs.com/langdangyunliu/p/4589743.html
Copyright © 2011-2022 走看看