Processing...

Suggested case list:

Using timer to refresh a grid

383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlink

user model to move item to another listbox

120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlink

Disabled list item row passed to VM-1981

296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlink

Disabled list item row passed to VM-1981

295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlink

Disabled list item row passed to VM-1981

294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlink

grid sample with ListModel/RowRenderer

816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlink

grid sample with ListModel/RowRenderer

809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlink

grid sample with ListModel/RowRenderer

196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlink

grid sample with ListModel/RowRenderer

195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlink

grid sample with ListModel/RowRenderer

194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlink

grid sample with ListModel/RowRenderer

193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlink

grid sample with ListModel/RowRenderer

192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlink

grid sample with ListModel/RowRenderer

191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlink

Hierarchy table without using ZK PE/EE

1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlink

grid sample with ListModel/RowRenderer

128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlink

user model to move item to another listbox

1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlink

Using timer to refresh a grid

1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlink

Fire a event from child iframe

1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlink

Textbox input restriction sample

1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlink

Test web core taglib in ZUL

1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlink

Latest 10 Fiddles :

Another new ZK fiddle

1guest172.70.111.155rcrbibApr 24, 2024 10:32:38 AMlink

open new url in same tab

16guest172.71.134.14923nk51gApr 23, 2024 3:42:54 PMlink

Dedalus Concerto CONC-5938

71guest188.114.102.11417kiilApr 23, 2024 1:10:17 PMlink

Dedalus Concerto CONC-XXXX

70guest172.71.246.317kiilApr 23, 2024 10:43:35 AMlink

Dedalus Concerto CONC-XXXX

69guest172.71.246.217kiilApr 23, 2024 10:42:44 AMlink

Dedalus Concerto CONC-XXXX

68guest172.71.246.4917kiilApr 23, 2024 10:40:09 AMlink

Scrapbook Concerto CONC-XXXX

67guest172.71.246.4817kiilApr 23, 2024 10:39:49 AMlink

Scrapbook Concerto CONC-XXXX

66guest172.71.246.4917kiilApr 23, 2024 10:39:35 AMlink

Scrapbook Concerto CONC-XXXX

65guest172.71.246.4917kiilApr 23, 2024 10:38:52 AMlink

Scrapbook Concerto CONC-XXXX

64guest172.71.246.4917kiilApr 23, 2024 10:38:47 AMlink

Browser blocked on tree update

7cocoes81.37.0.210oovs9Apr 16, 2013 10:39:44 AMlink

resources

index.zulzul<?xml version="1.0" encoding="UTF-8"?> <?page id="mypage" ?> <window id="mywindow" border="none" apply="pkg$.TestComposer" > <include src="test_include.zul" id="myinclude"></include> </window> TestComposer.javajava import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import java.util.Random; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.DefaultTreeModel; import org.zkoss.zul.DefaultTreeNode; import org.zkoss.zul.Include; import org.zkoss.zul.Tree; public class TestComposer extends GenericForwardComposer { DefaultTreeModel mymodelA,mymodelB,mymodelC; public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); if(!comp.getDesktop().isServerPushEnabled()){ comp.getDesktop().enableServerPush(true); } Tree myTreeA= (Tree) ((Include)comp.getFellow("myinclude")).getFellow("myTreeA"); mymodelA=new DefaultTreeModel(new DefaultTreeNode(null,new DefaultTreeNode[] {})); fillTree(myTreeA,mymodelA,"A"); Tree myTreeB= (Tree) ((Include)comp.getFellow("myinclude")).getFellow("myTreeB"); mymodelB=new DefaultTreeModel(new DefaultTreeNode(null,new DefaultTreeNode[] {})); fillTree(myTreeB,mymodelB,"B"); Tree myTreeC= (Tree) ((Include)comp.getFellow("myinclude")).getFellow("myTreeC"); mymodelC=new DefaultTreeModel(new DefaultTreeNode(null,new DefaultTreeNode[] {})); fillTree(myTreeC,mymodelC,"C"); } private void fillTree(Tree myTree, DefaultTreeModel mymodel, String treeName) { myTree.setItemRenderer(new TreeRendererTest()); myTree.setModel(mymodel); DefaultTreeNode rootNode=(DefaultTreeNode)mymodel.getRoot(); for (int i=0;i<10;i++) { TestObject test=new TestObject(); test.col0="Row "+treeName+" "+i; test.col1="0"; test.col2="0"; TestObject test1=new TestObject(); test1.col0="SubRow "+treeName+" "+i+ " X"; test1.col1="0"; test1.col2="0"; TestObject test2=new TestObject(); test2.col0="SubRow "+treeName+" "+i+ " Y"; test2.col1="0"; test2.col2="0"; rootNode.add(new DefaultTreeNode(test,new DefaultTreeNode[] { new DefaultTreeNode(test1), new DefaultTreeNode(test2) })); } } public void onCol1(Event event){ updateCol(event,1); } public void onCol2(Event event){ updateCol(event,2); } public void updateCol(Event event, int col){ DefaultTreeNode rootNode; String id=(String)event.getData(); if (id.startsWith("Row A") || id.startsWith("SubRow A")) { rootNode=(DefaultTreeNode)mymodelA.getRoot(); } else if (id.startsWith("Row B") || id.startsWith("SubRow B")) { rootNode=(DefaultTreeNode)mymodelB.getRoot(); } else if (id.startsWith("Row C") || id.startsWith("SubRow C")) { rootNode=(DefaultTreeNode)mymodelC.getRoot(); } else { System.out.println("ERROR id="+id); return; } Iterator it=rootNode.getChildren().iterator(); TestObject row; DefaultTreeNode node; while(it.hasNext()) { node= (DefaultTreeNode)it.next(); row=(TestObject)node.getData(); if (row.col0.equals(id)) { if (col==1) { row.col1=""+newRandomInt(); } else if (col==2) { row.col2=""+newRandomDouble(); } node.setData(row); break; } else if (id.startsWith("Sub"+row.col0)) { DefaultTreeNode nodeSub; TestObject rowSub; for (int index = 0; index < node.getChildCount(); index++) { nodeSub=(DefaultTreeNode)node.getChildAt(index); rowSub=(TestObject)nodeSub.getData(); if (rowSub.col0.equals(id)) { if (col==1) { rowSub.col1=""+newRandomInt(); } else if (col==2) { rowSub.col2=""+newRandomDouble(); } } nodeSub.setData(rowSub); } } } } private int newRandomInt() { Random randomGenerator = new Random(); return randomGenerator.nextInt(100); } private double newRandomDouble(){ double MEAN = 100.0f; double VARIANCE = 5.0f; Random randomGenerator = new Random(); return MEAN+randomGenerator.nextGaussian()*VARIANCE; } } TreeRendererTest.javajava import java.util.StringTokenizer; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.DefaultTreeNode; import org.zkoss.zul.Treecell; import org.zkoss.zul.Treeitem; import org.zkoss.zul.TreeitemRenderer; import org.zkoss.zul.Treerow; public class TreeRendererTest implements TreeitemRenderer{ @Override public void render(Treeitem treeItem, Object data, int id) throws Exception { DefaultTreeNode treeNode = (DefaultTreeNode) data; treeItem.setValue(treeNode); Treerow tr; if (treeItem.getTreerow() == null) { tr = new Treerow(); tr.setParent(treeItem); } else { tr = treeItem.getTreerow(); tr.getChildren().clear(); } TestObject row = (TestObject)treeNode.getData(); Treecell t1=new Treecell(); t1.setLabel(row.col0); tr.appendChild(t1); Treecell t2=new Treecell(); t2.setLabel(row.col1); if (!t2.isListenerAvailable(Events.ON_CLICK, true)) { t2.addEventListener(Events.ON_CLICK, new EventListener() { public void onEvent(Event event) throws Exception { //Executions.schedule(event.getTarget().getDesktop(), this, new Event("onCol1", Path.getComponent("//mypage/mywindow"), ((Treerow)event.getTarget().getParent()).getLabel() )); Events.postEvent(new Event("onCol1",Path.getComponent("//mypage/mywindow"), ((Treerow)event.getTarget().getParent()).getLabel() )); } }); } tr.appendChild(t2); Treecell t3=new Treecell(); t3.setLabel(row.col2); if (!t3.isListenerAvailable(Events.ON_CLICK, true)) { t3.addEventListener(Events.ON_CLICK, new EventListener() { public void onEvent(Event event) throws Exception { //Executions.schedule(event.getTarget().getDesktop(), this, new Event("onCol2", Path.getComponent("//mypage/mywindow"), ((Treerow)event.getTarget().getParent()).getLabel() )); Events.postEvent(new Event("onCol2",Path.getComponent("//mypage/mywindow"), ((Treerow)event.getTarget().getParent()).getLabel() )); } }); } tr.appendChild(t3); } } TestComparator.javajava import java.util.Comparator; import org.zkoss.zul.DefaultTreeNode; public class TestComparator implements Comparator { private boolean _asc; private int _col; public TestComparator(int col, boolean asc) { _asc = asc; _col=col; } public int compare(Object o1, Object o2) { TestObject t1= (TestObject)((DefaultTreeNode)o1).getData(); TestObject t2= (TestObject)((DefaultTreeNode)o2).getData(); //String s1 = (String)o1, s2 = (String)o2; int v=0; if (_col==0) { v = t1.col0.compareTo(t2.col0); } else if (_col==1) { v = t1.col1.compareTo(t2.col1); } else if (_col==2) { v = t1.col2.compareTo(t2.col2); } return _asc ? v: -v; } } TestObject.javajavapublic class TestObject { public String col0,col1,col2; } test_include.zulzul<?xml version="1.0" encoding="UTF-8"?> <?page id="test_inc"?> <zk> <zscript> import pkg$.TestComparator; Comparator cA0_asc = new TestComparator(0,true), cA0_dsc = new TestComparator(0,false), cA1_asc = new TestComparator(1,true), cA1_dsc = new TestComparator(1,false), cA2_asc = new TestComparator(2,true), cA2_dsc = new TestComparator(2,false); </zscript> <tabbox vflex="1" id="myTab"> <tabs> <tab label="A" id="tab_a"/> <tab label="B" id="tab_b"/> <tab label="C" id="tab_c"/> </tabs> <tabpanels vflex="1"> <tabpanel id="tabp_a" > <tree id="myTreeA" vflex="1" hflex="1" > <treecols sizable="true"> <treecol label="c0" id="c0A" hflex="1" sortAscending="&#36;{cA0_asc}" sortDescending="&#36;{cA0_dsc}"/> <treecol label="c1" id="c1A" hflex="1" sortAscending="&#36;{cA1_asc}" sortDescending="&#36;{cA1_dsc}"/> <treecol label="c2" id="c2A" hflex="1" sortAscending="&#36;{cA2_asc}" sortDescending="&#36;{cA2_dsc}"/> </treecols> <treechildren> </treechildren> </tree> </tabpanel> <tabpanel id="tabp_b" > <tree id="myTreeB" vflex="1" hflex="1" > <treecols sizable="true"> <treecol label="c0" id="c0B" hflex="1" sortAscending="&#36;{cA0_asc}" sortDescending="&#36;{cA0_dsc}"/> <treecol label="c1" id="c1B" hflex="1" sortAscending="&#36;{cA1_asc}" sortDescending="&#36;{cA1_dsc}"/> <treecol label="c2" id="c2B" hflex="1" sortAscending="&#36;{cA2_asc}" sortDescending="&#36;{cA2_dsc}"/> </treecols> <treechildren> </treechildren> </tree> </tabpanel> <tabpanel id="tabp_c" > <tree id="myTreeC" vflex="1" hflex="1" > <treecols sizable="true"> <treecol label="c0" id="c0C" hflex="1" sortAscending="&#36;{cA0_asc}" sortDescending="&#36;{cA0_dsc}"/> <treecol label="c1" id="c1C" hflex="1" sortAscending="&#36;{cA1_asc}" sortDescending="&#36;{cA1_dsc}"/> <treecol label="c2" id="c2C" hflex="1" sortAscending="&#36;{cA2_asc}" sortDescending="&#36;{cA2_dsc}"/> </treecols> <treechildren> </treechildren> </tree> </tabpanel> </tabpanels> </tabbox> </zk>