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 :

Customized Menupopup On Grid Header

5hiepgau172.71.211.10gig0j7May 4, 2024 5:33:29 AMlink

Another new ZK fiddle

4hiepgau172.68.225.142gig0j7May 4, 2024 5:31:25 AMlink

Another new ZK fiddle

3hiepgau172.71.218.113gig0j7May 3, 2024 11:46:46 PMlink

Another new ZK fiddle

2hiepgau162.158.178.201gig0j7May 3, 2024 11:40:57 PMlink

Another new ZK fiddle

1hiepgau162.158.179.103gig0j7May 3, 2024 10:49:45 PMlink

custom menu on grid

7hiepgau172.71.214.52261rcaiMay 3, 2024 9:27:35 PMlink

custom menu on grid

6hiepgau172.71.214.53261rcaiMay 3, 2024 9:26:52 PMlink

custom menu on grid

5hiepgau172.71.214.53261rcaiMay 3, 2024 9:25:26 PMlink

custom menu on grid

4hiepgau162.158.114.139261rcaiMay 3, 2024 9:20:17 PMlink

Another new ZK fiddle

1guest172.70.80.2021nil9qsMay 3, 2024 2:07:26 PMlink

Onselect

36hswain116.203.102.106i5g90Feb 14, 2013 4:28:12 PMlink

resources

index.zulzul<?page title="User Interface" contentType="text/html;charset=UTF-8"?> <zk> <window title="User Interface" border="normal" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.UserInterfaceViewModel')" height="100%" width="100%"> <tabbox id="mainTab"> <tabs> <tab label="Tab1" /> </tabs> <tabpanels> <tabpanel style="color:#333399;"> <include src="tab1.zul" /> </tabpanel> </tabpanels> </tabbox> </window> </zk>TestComposer.javajavaimport org.zkoss.zk.ui.*; import org.zkoss.zk.ui.event.*; import org.zkoss.zk.ui.util.*; import org.zkoss.zk.ui.ext.*; import org.zkoss.zk.au.*; import org.zkoss.zk.au.out.*; import org.zkoss.zul.*; public class TestComposer extends GenericForwardComposer{ public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); } public void onClick$btn(Event e) throws InterruptedException{ Messagebox.show("Saves"); } } popup_window.zulzul<zk xmlns:x="xhtml" xmlns:zk="zk"> <window apply="org.zkoss.bind.BindComposer" width="700px" height="400px" mode="modal" border="normal" closable="true" viewModel="@id('vm') @init('pkg$.PopUpViewModel')"> <x:table border="0"> <x:tr> <x:td> <button label="Pick" onClick="@command('doPickDocumentRSN')"></button> </x:td> </x:tr> </x:table> </window> </zk> tab1.zulzul<zk xmlns:x="xhtml" xmlns:zk="zk"> <window apply="org.zkoss.bind.BindComposer" width="100%" height="100%" title="Tab1" border="normal" closable="true" viewModel="@id('vm') @init('pkg$.Tab1ViewModel')"> <groupbox closable="false" vflex="1" width="100%" height="100%"> <listbox vflex="1" model="@load(vm.documentList)" selectedItem="@bind(vm.selectedDocument)"> <listhead> <listheader label="DocumentRSN" align="center"> </listheader> <listheader label="DocumentDesc" align="center"> </listheader> <listheader label="DocumentOrder" align="center"> </listheader> </listhead> <template name="model" sclass="vertical-scroll" var="each"> <listitem onClick="@command('doPickDocument',documentRSN=each.documentRSN)"> <listcell label="@load(each.documentRSN)" /> <listcell label="@load(each.documentDesc)" /> <listcell label="@load(each.documentOrder)" /> </listitem> </template> </listbox> <x:table cellpadding="1" align="center"> <x:tr> <x:td><!-- <textbox value="@bind(documentRSN)"></textbox>--> </x:td> <x:td align="center"> <!--<button label="Pick" width="100px" onClick="@command('doPickDocumentRSN')"> </button>--> </x:td> </x:tr> </x:table> </groupbox> </window> </zk>tab2.zulzul<zk xmlns:x="xhtml" xmlns:zk="zk"> <window apply="org.zkoss.bind.BindComposer" width="100%" height="100%" title="Tab2" border="normal" closable="true" viewModel="@id('vm') @init('pkg$.Tab2ViewModel')"> <groupbox closable="false" height="100%" vflex="1" width="100%"> <listbox vflex="1" model="@load(vm.documentList)" selectedItem="@bind(vm.selectedDocument)"> <listhead > <listheader label="DocumentRSN" align="center"> </listheader> <listheader label="DocumentDesc" align="center"> </listheader> <listheader label="DocumentOrder" align="center"> </listheader> </listhead> <template name="model" sclass="vertical-scroll" var="each"> <listitem > <listcell label="@load(each.documentRSN)" /> <listcell label="@load(each.documentDesc)" /> <listcell label="@load(each.documentOrder)" /> </listitem> </template> </listbox> <x:table width="100%" cellpadding="1" align="center"> <x:tr> <x:td align="center"> <button label="Accept" width="100px" onClick="@command('acceptDocumentRSN')"> </button> </x:td> </x:tr> </x:table> </groupbox> </window> </zk>PopUpViewModel.javajavaimport java.util.HashMap; import java.util.Map; import org.zkoss.bind.annotation.AfterCompose; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; import org.zkoss.bind.annotation.ExecutionArgParam; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zk.ui.Component; public class PopUpViewModel { private int documentRSN; /** * Automatically called after widow is loaded * * @param view * @param folderSubTabArgs */ @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view, @ExecutionArgParam("documentRSN") int documentRSN) { this.documentRSN = documentRSN; } /** * On click of all button open people page to select a people */ @SuppressWarnings("unchecked") @Command public void doPickDocumentRSN(@ContextParam(ContextType.VIEW) Component comp) { Map maps = new HashMap(); maps.put("PARENT_VIEW", comp); maps.put("peopleTabArg", new TabArguement(TabArguement.TabMode.PICK)); UserInterfaceViewModel.addAnyTab(maps, "Tab2", "tab2.zul"); } @Command @NotifyChange("documentRSN") public void acceptSelectedDocument(@BindingParam("documentRSN") int documentRSN) { this.documentRSN = documentRSN; } public void setDocumentRSN(int documentRSN) { this.documentRSN = documentRSN; } public int getDocumentRSN() { return documentRSN; } } Tab1ViewModel.javajavaimport java.io.Serializable; import java.util.HashMap; import java.util.Map; import org.zkoss.bind.annotation.AfterCompose; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zul.ListModelList; public class Tab1ViewModel { private ListModelList<Document> documentList; private Document selectedDocument; private int documentRSN; /** * Automatically called after widow is loaded * * @param view * @param folderSubTabArgs */ @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { loadDocumentList(); } private void loadDocumentList() { documentList = new ListModelList<Document>(); for (int row = 1; row <= 10; row++) { Document document = new Document(); document.setDocumentRSN(row); document.setDocumentDesc("documentDesc"+row); document.setDocumentOrder(row); documentList.add(document); } } /** * Handles double click of pick window row. * * @param view * @param infoValue * @param infoCode */ @SuppressWarnings("unchecked") @Command public void doPickDocument( @ContextParam(ContextType.VIEW) Component view, @BindingParam("documentRSN") String documentRSN) { Map arguments = new HashMap(); arguments.put("documentRSN", documentRSN); Executions.getCurrent().createComponents( "popup_window.zul", view, arguments); } /** * On click of all button open people page to select a people */ @SuppressWarnings("unchecked") @Command public void doPickDocumentRSN(@ContextParam(ContextType.VIEW) Component comp) { Map maps = new HashMap(); maps.put("PARENT_VIEW", comp); maps.put("peopleTabArg", new TabArguement(TabArguement.TabMode.PICK)); UserInterfaceViewModel.addAnyTab(maps, "Tab2", "tab2.zul"); } @Command @NotifyChange("documentRSN") public void acceptSelectedDocument(@BindingParam("documentRSN") int documentRSN) { this.setDocumentRSN(documentRSN); } public ListModelList<Document> getDocumentList() { return documentList; } public void setDocumentList(ListModelList<Document> documentList) { this.documentList = documentList; } public void setSelectedDocument(Document selectedDocument) { this.selectedDocument = selectedDocument; } public Document getSelectedDocument() { return selectedDocument; } public void setDocumentRSN(int documentRSN) { this.documentRSN = documentRSN; } public int getDocumentRSN() { return documentRSN; } public class Document implements Serializable { private static final long serialVersionUID = 14545456347L; int documentRSN; String documentDesc; int documentOrder; public int getDocumentRSN() { return documentRSN; } public void setDocumentRSN(int documentRSN) { this.documentRSN = documentRSN; } public String getDocumentDesc() { return documentDesc; } public void setDocumentDesc(String documentDesc) { this.documentDesc = documentDesc; } public int getDocumentOrder() { return documentOrder; } public void setDocumentOrder(int documentOrder) { this.documentOrder = documentOrder; } } } Tab2ViewModel.javajavaimport java.io.Serializable; import java.util.HashMap; import java.util.Map; import org.zkoss.bind.Binder; import org.zkoss.bind.annotation.AfterCompose; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; import org.zkoss.bind.annotation.ExecutionArgParam; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Messagebox; public class Tab2ViewModel { private ListModelList<Document> documentList; private Document selectedDocument; Component parentView; /** * Automatically called after widow is loaded * * @param view * @param folderSubTabArgs */ @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view,@ExecutionArgParam("PARENT_VIEW") Component parentView) { this.parentView = parentView; loadDocumentList(); } private void loadDocumentList() { documentList = new ListModelList<Document>(); for (int row = 1; row <= 10; row++) { Document document = new Document(); document.setDocumentRSN(row); document.setDocumentDesc("documentDesc"+row); document.setDocumentOrder(row); documentList.add(document); } } @Command public void acceptDocumentRSN(@ContextParam(ContextType.VIEW) Component view) { if(selectedDocument==null) Messagebox.show("Please select a document"); else{ Map arguments = new HashMap(); arguments.put("documentRSN", selectedDocument.getDocumentRSN()); Binder bind = (Binder) parentView.getAttribute("binder"); if (bind == null) return; bind.postCommand("acceptSelectedDocument", arguments); UserInterfaceViewModel.closeSelectedParentTab(); } } public ListModelList<Document> getDocumentList() { return documentList; } public void setDocumentList(ListModelList<Document> documentList) { this.documentList = documentList; } public void setSelectedDocument(Document selectedDocument) { this.selectedDocument = selectedDocument; } public Document getSelectedDocument() { return selectedDocument; } public class Document implements Serializable { private static final long serialVersionUID = 14545456347L; int documentRSN; String documentDesc; int documentOrder; public int getDocumentRSN() { return documentRSN; } public void setDocumentRSN(int documentRSN) { this.documentRSN = documentRSN; } public String getDocumentDesc() { return documentDesc; } public void setDocumentDesc(String documentDesc) { this.documentDesc = documentDesc; } public int getDocumentOrder() { return documentOrder; } public void setDocumentOrder(int documentOrder) { this.documentOrder = documentOrder; } } } TabArguement.javajavaimport java.util.ArrayList; import java.util.List; public class TabArguement { public enum TabMode { PICK, DETAIL; } private String sourcePage; private TabMode mode; public TabArguement() { super(); } public TabArguement(TabMode mode) { super(); this.mode = mode; } public TabArguement(String sourcePage, TabMode mode) { super(); this.sourcePage = sourcePage; this.mode = mode; } public TabMode getMode() { return mode; } // CsdcConstants interface have the constants defined for detail and pick public void setMode(TabMode mode) { this.mode = mode; } public String getSourcePage() { return sourcePage; } public void setSourcePage(String sourcePage) { this.sourcePage = sourcePage; } } UserInterfaceViewModel.javajavaimport java.util.HashMap; import java.util.Map; import java.util.Set; import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.AfterCompose; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; import org.zkoss.bind.annotation.GlobalCommand; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Components; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.select.Selectors; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.Include; import org.zkoss.zul.Tab; import org.zkoss.zul.Tabbox; import org.zkoss.zul.Tabpanel; public class UserInterfaceViewModel { @Wire("#mainTab") Tabbox mainTab; @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { Selectors.wireComponents(view, this, false); } public static void addAnyTab(Map<String, Object> parameters, String tabName, String tabPath) { Map<String, Object> map = new HashMap<String, Object>(); map.put("parameters", parameters); map.put("tabName", tabName); map.put("tabPath", tabPath); BindUtils.postGlobalCommand(null, null, "loadAnyTab", map); } @SuppressWarnings("unchecked") @GlobalCommand public void loadAnyTab( @BindingParam("parameters") Map<String, Object> parameters, @BindingParam("tabName") String tabName, @BindingParam("tabPath") String tabPath) { mainTab.getSelectedTab().addEventListener(Events.ON_CLICK, new EventListener() { public void onEvent(Event e) throws Exception { Tab nextTab = (Tab) mainTab.getSelectedTab() .getNextSibling(); if (nextTab != null) { Components.removeAllChildren(nextTab .getLinkedPanel()); nextTab.close(); } } }); openNewTab(tabName, tabPath, mainTab, parameters); } public static void openNewTab(String title, String path, Tabbox mainTab, Map<String, Object> parameters) { Tab tab = new Tab(title); tab.setClosable(true); tab.setParent(mainTab.getTabs()); Tabpanel tabpanel = new Tabpanel(); Include include = new Include(path); include.setParent(tabpanel); if (parameters != null) { Set<Map.Entry<String, Object>> entry = parameters.entrySet(); for (Map.Entry<String, Object> parameter : entry) { include.setDynamicProperty(parameter.getKey(), parameter .getValue()); } } tabpanel.setParent(mainTab.getTabpanels()); mainTab.setSelectedTab(tab); } @GlobalCommand public void closeSelectedTab() { closeSelectedTab(mainTab); } public static void closeSelectedParentTab() { BindUtils.postGlobalCommand(null, null, "closeSelectedTab", null); } public static void closeSelectedTab(Tabbox mainTab) { Components.removeAllChildren(mainTab.getSelectedTab().getLinkedPanel()); mainTab.getSelectedTab().close(); } }