📄 z30-treepath.zul
字号:
<?xml version="1.0" encoding="UTF-8"?><zk xmlns="http://www.zkoss.org/2005/zul" xmlns:n="http://www.zkoss.org/2005/zk/native"> <window title="Dynamically Change by Model"> <zscript><![CDATA[ class MySimpleTreeNode extends SimpleTreeNode { private String myData = null; public MySimpleTreeNode(String data, List children) { super(data, children); myData = data.toString(); } public String toString() { return "Node: " + myData; } public void append(String data) { myData = myData + data; } public Object getData() { return myData; } } List aChildren = new ArrayList(); List empty = new ArrayList(); List a2Children = new ArrayList(); MySimpleTreeNode a20 = new MySimpleTreeNode("A2-0", empty); MySimpleTreeNode a21 = new MySimpleTreeNode("A2-1", empty); MySimpleTreeNode a22 = new MySimpleTreeNode("A2-2", empty); a2Children.add(a20); a2Children.add(a21); a2Children.add(a22); MySimpleTreeNode a0 = new MySimpleTreeNode("A0", empty); MySimpleTreeNode a1 = new MySimpleTreeNode("A1", empty); MySimpleTreeNode a2 = new MySimpleTreeNode("A2", a2Children); aChildren.add(a0); aChildren.add(a1); aChildren.add(a2); List children = new ArrayList(); MySimpleTreeNode a = new MySimpleTreeNode("A", aChildren); children.add(a); List bbChildren = new ArrayList(); MySimpleTreeNode b00 = new MySimpleTreeNode("B0-0", empty); bbChildren.add(b00); List bChildren = new ArrayList(); MySimpleTreeNode b0 = new MySimpleTreeNode("B0", bbChildren); MySimpleTreeNode b1 = new MySimpleTreeNode("B1", empty); MySimpleTreeNode b2 = new MySimpleTreeNode("B2", empty); bChildren.add(b0); bChildren.add(b1); bChildren.add(b2); MySimpleTreeNode b = new MySimpleTreeNode("B", bChildren); children.add(b); List rList = new ArrayList(); rList.add(a); rList.add(b); MySimpleTreeNode r = new MySimpleTreeNode("Root", rList); int testSize = 30; List r2Children = new ArrayList(); for(int i=0; i< testSize; i++){ r2Children.add(new MySimpleTreeNode("Root2-"+i, empty)); } MySimpleTreeNode r2 = new MySimpleTreeNode("Root2", r2Children); List rootList = new ArrayList(); rootList.add(r); rootList.add(r2); MySimpleTreeNode root = new MySimpleTreeNode("Root", rootList); SimpleTreeModel stm = new SimpleTreeModel(root); public void renderByPath(Object obj){ int[] result = stm.getPath(root,obj); tree.renderItemByPath(result); } public void testActivePage(){ int index = ib.value; if(index >=0 && index < testSize){ int[] path = {1,ib.value}; tree.renderItemByPath(path); }else{ alert("test index only can be in the range 0 to "+(testSize-1)); } } ]]></zscript> <vbox> <tree model="${stm}" id="tree" width="700PX"> </tree> <hbox> <button label='open A2' onClick='renderByPath(a2)' /> <button label='open B0-0' onClick='renderByPath(b00)' /> <button label='open A2-1' onClick='renderByPath(a21)' /> <intbox id="ib"/><button label='open active Page by index of tree item of Root2' onClick='testActivePage()' /> </hbox> </vbox> </window> </zk>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -