package org.zkoss.zktest.bind.issue; import java.util.Random; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zul.DefaultTreeModel; import org.zkoss.zul.DefaultTreeNode; import org.zkoss.zul.Treecell; import org.zkoss.zul.Treeitem; import org.zkoss.zul.TreeModel; import org.zkoss.zul.TreeNode; import org.zkoss.zul.TreeitemRenderer; import org.zkoss.zul.Treerow; public class B01698TreePerformance { TreeModel _model; TreeNode _root; private int _count; public TreeModel getModel() { if (_model == null) { _model = new DefaultTreeModel(getRoot()); } return _model; } private TreeNode getRoot() { Random r = new Random(); if (_root == null) { TreeNode[] nodes = new TreeNode[1000]; for (int i = 0; i < nodes.length; i++) { nodes[i] = new DefaultTreeNode(new TreePerformanceTestData("dataOne_" + (i), "dataTwo_" + r.nextInt(), "dataThree_" + r.nextInt(), this)); } // System.out.println(">>>new nodes "+nodes.length); _root = new DefaultTreeNode(null, nodes); } return _root; } public void increaseCount() { _count++; } public int getCount() { return _count; } @Command @NotifyChange("count") public void updateCount() { } long t1 = -1; long t2 = -1; public class TreePerformanceTestData { private String _dataOne; private String _dataTwo; private String _dataThree; private B01698TreePerformance _vm; public TreePerformanceTestData(String dataOne, String dataTwo, String dataThree, B01698TreePerformance vm) { _dataOne = dataOne; _dataTwo = dataTwo; _dataThree = dataThree; _vm = vm; } public String getDataOne() { _vm.increaseCount(); // long x = 0; // t2 = System.currentTimeMillis(); // x = t2-t1; // t1 = t2; // // System.out.println(">>>get data one "+_dataOne+" "+x); return _dataOne; } public void setDataOne(String dataOne) { _dataOne = dataOne; } public String getDataTwo() { return _dataTwo; } public void setDataTwo(String dataTwo) { _dataTwo = dataTwo; } public String getDataThree() { return _dataThree; } public void setDataThree(String dataThree) { _dataThree = dataThree; } } }