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 :

Textbox input restriction sample

1guest172.71.137.1339ahuuhJan 12, 2025 6:43:16 AMlink

ZK MVVM Converter

21guest172.71.137.13816cf90oJan 12, 2025 6:35:27 AMlink

Template composition and include

35guest172.70.246.66vroi36Jan 10, 2025 3:44:06 PMlink

Template composition and include

34guest172.70.246.66vroi36Jan 10, 2025 3:43:42 PMlink

Template composition and include

33guest172.70.246.66vroi36Jan 10, 2025 3:42:59 PMlink

Template composition and include

32guest172.70.246.67vroi36Jan 10, 2025 3:41:58 PMlink

Template composition and include

31guest172.70.246.66vroi36Jan 10, 2025 3:41:25 PMlink

Template composition and include

30guest172.70.246.66vroi36Jan 10, 2025 3:39:35 PMlink

Template composition and include

29guest172.70.246.66vroi36Jan 10, 2025 3:39:09 PMlink

Template composition and include

28guest172.70.246.67vroi36Jan 10, 2025 3:37:54 PMlink

Tree binding selected item

5guest123.16.154.14017gj1g4May 12, 2017 12:33:14 PMlink

resources

index.zulzul<?xml version="1.0" encoding="UTF-8" ?> <zk> <window apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.TestVM')"> <tree id="tree" rows="5" selectedItem="@bind(vm.selectedItem) @converter(vm.converter)" model="@load(vm.model)"> <treecols> <treecol hflex="3" label="Path" /> <treecol hflex="5" label="Description" /> <treecol hflex="2" label="Size" /> </treecols> <template name="model"> <treeitem> <treerow> <treecell label="${each.data.path}"/> <treecell label="${each.data.description}"/> </treerow> </treeitem> </template> </tree> <textbox value="@bind(vm.nameOfSelectedItem)" /> </window> </zk>TestVM.javajava import java.util.*; import org.zkoss.bind.Converter; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zul.*; public class TestVM { Treeitem _selectedItem; Treeitem _itemOne; TestConverter _testConverter; TreeModel _model; Map<String, int[]> _mappingMap; public Treeitem getSelectedItem () { System.out.println("get " + _selectedItem); return _selectedItem; } @NotifyChange("nameOfSelectedItem") public void setSelectedItem(Treeitem selectedItem) { System.out.println("set " + selectedItem); _selectedItem = selectedItem; } public String getNameOfSelectedItem() { if (_selectedItem != null) { return ((Treecell)_selectedItem.getTreerow().getFirstChild()).getLabel(); } return "null"; } @NotifyChange("selectedItem") public void setNameOfSelectedItem(String value) { Tree t = (Tree)((TestConverter)getConverter()).getComp(); if (_mappingMap == null) { _mappingMap = new HashMap<String, int[]>(); createMappingMap((DirectoryTreeNode)_model.getRoot()); } System.out.println(_mappingMap.containsKey(value)); if (_mappingMap.containsKey(value)) { int[] path = _mappingMap.get(value); DefaultTreeModel dtm = (DefaultTreeModel)_model; DirectoryTreeNode child = (DirectoryTreeNode)dtm.getChild(path); DirectoryTreeNode parent = (DirectoryTreeNode)child.getParent(); Set openProjects = dtm.getOpenObjects(); while (parent != null) { openProjects.add(parent); parent = (DirectoryTreeNode)parent.getParent(); } dtm.setOpenObjects(openProjects); dtm.addToSelection(dtm.getChild(path)); _selectedItem = t.getSelectedItem(); } } public Converter getConverter () { if (_testConverter == null) _testConverter = new TestConverter(); return _testConverter; } public TreeModel getModel () { if (_model == null) _model = new DefaultTreeModel(new PackageDataUtil().getRoot()); return _model; } public void createMappingMap (DirectoryTreeNode dtn) { if (dtn != null) { PackageData data = (PackageData)dtn.getData(); if (data != null) _mappingMap.put(data.getPath(), _model.getPath(dtn)); if (dtn.getChildren() != null) for (Object tn : dtn.getChildren()) createMappingMap((DirectoryTreeNode)tn); } } }TestConverter.javajava import org.zkoss.bind.BindContext; import org.zkoss.bind.Converter; import org.zkoss.zk.ui.Component; public class TestConverter implements Converter, java.io.Serializable { private static final long serialVersionUID = 201109261823L; Component _comp; public Object coerceToUi(Object val, Component comp, BindContext ctx) { if (_comp == null) _comp = comp; return val; } public Object coerceToBean(Object val, Component comp, BindContext ctx) { if (_comp == null) _comp = comp; return val; } public Component getComp () { return _comp; } } PackageData.javajava public class PackageData { private final String path; private final String description; private final String size; public PackageData(String path, String description) { this.path = path; this.description = description; this.size = null; } public PackageData(String path, String description, String size) { this.path = path; this.description = description; this.size = size; } public String getPath() { return path; } public String getDescription() { return description; } public String getSize() { return size; } }PackageDataUtil.javajava public class PackageDataUtil { private DirectoryTreeNode root = new DirectoryTreeNode(null, new DirectoryTreeNode[] { new DirectoryTreeNode(new PackageData("/doc", "Release Notes and License")), new DirectoryTreeNode(new PackageData("/dist", null),new DirectoryTreeNode[]{ new DirectoryTreeNode(new PackageData("/lib", null),new DirectoryTreeNode[]{ new DirectoryTreeNode(new PackageData("/zkforge", null),new DirectoryTreeNode[]{ new DirectoryTreeNode(new PackageData("ckez.jar", "CKeditor", "1709KB")), new DirectoryTreeNode(new PackageData("timelinez.jar", "Timeline", "283KB")) },true), //zkforge opened new DirectoryTreeNode(new PackageData("/ext", null),new DirectoryTreeNode[]{ new DirectoryTreeNode(new PackageData("commons-fileupload.jar", "Upload Features")), new DirectoryTreeNode(new PackageData("commons-io.jar", "Upload Features")), new DirectoryTreeNode(new PackageData("jcommon.jar", "Chart Component")) }), //ext closed new DirectoryTreeNode(new PackageData("zcommon.jar", "ZK Core Jar File", "413KB" )), new DirectoryTreeNode(new PackageData("zcommon-el.jar", "ZK Core Jar File", "100KB" )), new DirectoryTreeNode(new PackageData("zel.jar", "ZK Core Jar File", "151KB" )) }), //lib closed new DirectoryTreeNode(new PackageData("/src", "Jar Format Source Code")), new DirectoryTreeNode(new PackageData("/xsd", "XSD files for Development")), new DirectoryTreeNode(new PackageData("/WEB-INF", "Configuration Files")) },true) //dist opened });; public DirectoryTreeNode getRoot() { return root; } }DirectoryTreeNode.javajava import org.zkoss.zul.DefaultTreeNode; public class DirectoryTreeNode extends DefaultTreeNode { private boolean open; public DirectoryTreeNode(Object data, DefaultTreeNode[] children, boolean open) { super(data, children); } public DirectoryTreeNode(Object data, DefaultTreeNode[] children) { super(data, children); } public DirectoryTreeNode(Object data) { super(data); } public boolean isOpen() { return open; } public void setOpen(boolean open) { this.open = open; } }