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

2guest172.71.134.130218n5u0Apr 25, 2024 10:30:00 AMlink

Another new ZK fiddle

1guest172.71.134.130218n5u0Apr 25, 2024 10:29:38 AMlink

Barcodescanner use in Modal Window

8guest162.158.95.20135ck08dApr 25, 2024 10:26:46 AMlink

Barcodescanner use in Modal Window

7guest162.158.95.20235ck08dApr 25, 2024 10:25:21 AMlink

Barcodescanner use in Modal Window

6guest162.158.95.20235ck08dApr 25, 2024 10:24:03 AMlink

Barcodescanner use in Modal Window

5guest162.158.95.20135ck08dApr 25, 2024 10:21:42 AMlink

Barcodescanner use in Modal Window

4guest162.158.95.20235ck08dApr 25, 2024 10:21:03 AMlink

Barcodescanner use in Modal Window

3guest162.158.95.20135ck08dApr 25, 2024 10:20:28 AMlink

Barcodescanner use in Modal Window

2guest162.158.95.20135ck08dApr 25, 2024 10:16:41 AMlink

Barcodescanner use in Modal Window

1guest172.70.251.13335ck08dApr 25, 2024 10:04:09 AMlink

drag and drop test

24guest93.57.0.1462t6r27oMay 14, 2013 12:15:08 PMlink

resources

index.zulzul<zk> <window border="normal" title="hello" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.TestViewModel')"> <div width="100%" height="100%" style="background-color:#E7F9FF;"> <hbox width="100%" height="280px" style="background-color:red;" widths="50%,50%" spacing="0"> <vbox width="100%" align="center" height="100%" style="border-width:3px;border-color:#B0EBFF;border-style: ridge;background-color:#E7F9FF;"> <separator spacing="5px" style="background-color:#E7F9FF;"/> <label value="Contatti in Rubrica" style="margin:20px 2px 5px 15px;font:italic bold 12px Georgia,arial,sans-serif;text-shadow: 0.1em 0.1em 0.2em #C5C1BF"/> <separator spacing="5px" style="background-color:#E7F9FF;"/> <listbox id="left" width="100%" model="@load(vm.contacts)" height="200px" draggable="true" droppable="true" onDrop="@command('move')"> <listhead> <listheader label="Contatto" align="center" /> </listhead> <template name="model" var="contact"> <listitem value="@bind(contact)" draggable="true" droppable="true" onDrop="@command('move')"> <listcell src="/img/contact-icon_x32.jpg" label="@load(contact.surname.concat(' ').concat(contact.name))" /> </listitem> </template> </listbox> </vbox> <vbox width="100%" align="center" height="100%" style="border-width:3px;border-color:#B0EBFF;border-style: ridge;background-color:#E7F9FF;"> <separator spacing="5px" style="background-color:#E7F9FF;"/> <label width="100%" value="Tasti Rapidi Configurati" style="font:italic bold 12px Georgia,arial,sans-serif;text-shadow: 0.1em 0.1em 0.2em #C5C1BF"/> <separator spacing="5px" style="background-color:#E7F9FF;"/> <listbox width="100%" id="right" model="@load(vm.contactsQuickKey)" height="250px" draggable="true" droppable="true" onDrop="@command('move')" > <listhead> <listheader label="Etichetta" align="center" /> <listheader label="Contatto" align="center" /> </listhead> <template name="model" var="contactQuickKey"> <listitem value="@bind(contactQuickKey)" draggable="true" droppable="true" onDrop="@command('move')"> <listcell> <textbox width="90%" value="@load(contactQuickKey.label) @save(contactQuickKey.label, before={'move', 'saveData'})"/> </listcell> <listcell src="/img/contact-icon_x32.jpg" label="@load(contactQuickKey.contact.surname.concat(' ').concat(contactQuickKey.contact.name))" /> </listitem> </template> </listbox> </vbox> </hbox> <separator spacing="10px" style="background-color:#E7F9FF;"/> <hbox align="center" pack="center" width="100%" style="background-color:#E7F9FF;"> <button label="Salva" mold="trendy" onClick="@command('saveData')" /> </hbox> </div> </window> </zk> TestViewModel.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.*; import java.util.ArrayList; import java.util.List; import org.zkoss.bind.BindUtils; 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.Init; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zk.ui.select.Selectors; public class TestViewModel { private List<AddressBookContact> contacts; private List<QuickKeyContact> contactsQuickKey = new ArrayList<QuickKeyContact>(); public List<AddressBookContact> getContacts() { return contacts; } public void setContacts(List<AddressBookContact> contacts) { this.contacts = contacts; } public List<QuickKeyContact> getContactsQuickKey() { return contactsQuickKey; } public void setContactsQuickKey(List<QuickKeyContact> contactsQuickKey) { this.contactsQuickKey = contactsQuickKey; } @Init public void init(@ContextParam(ContextType.VIEW) Component view) { Selectors.wireComponents(view, this, false); contacts = new ArrayList<AddressBookContact>(); for (int i=0; i < 10; i++){ AddressBookContact abc = new AddressBookContact(); abc.setName("TestName_" + i); abc.setSurname("TestSurname_" + i); contacts.add(abc); } } @Command @NotifyChange({"contacts", "contactsQuickKey"}) public void move(@ContextParam(ContextType.COMPONENT) Component self, @ContextParam(ContextType.TRIGGER_EVENT) DropEvent dropEvent) { Component dragged = dropEvent.getDragged(); if (self instanceof Listitem) { self.getParent().insertBefore(dragged, self); } else { self.appendChild(dragged); } if (self.getId().equals("right")) { int max = 5; if (max == -1 || (max > -1 && contactsQuickKey.size() < max)) { moveContact(contacts, contactsQuickKey, ((Listitem) dragged).getValue(), QuickKeyContact.class); } else { Messagebox.show("Max reached. Cannot add more quick keys", "Warning!", Messagebox.OK, Messagebox.ERROR); } } else { moveContact(contactsQuickKey, contacts, ((Listitem) dragged).getValue(), AddressBookContact.class); } } private void moveContact(List listSrc, List listTarget, Object element, Class elementTargetType) { QuickKeyContact qck; AddressBookContact contact; if (element instanceof QuickKeyContact) { qck = (QuickKeyContact) element; contact = qck.getContact(); } else { contact = (AddressBookContact) element; qck = null; if (qck == null) { qck = new QuickKeyContact(); qck.setContact(contact); qck.setLabel(""); } } if (elementTargetType.isInstance(qck)) { if (!listTarget.contains(qck)) { listTarget.add(qck); } if (listSrc.contains(contact)) { listSrc.remove(contact); } } else { if (!listTarget.contains(contact)) { listTarget.add(contact); } if (listSrc.contains(qck)) { listSrc.remove(qck); } } } @Command @NotifyChange("contactsQuickKey") public void saveData() { Messagebox.show("Save data pressed", "Info!", Messagebox.OK,Messagebox.INFORMATION); } } AddressBookContact.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 AddressBookContact { private String name; private String surname; public String getName(){ return name; } public String getSurname(){ return surname; } public void setName(String name){ this.name = name; } public void setSurname(String surname){ this.surname = surname; } } QuickKeyContact.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 QuickKeyContact extends GenericForwardComposer{ private AddressBookContact contact; private String label; public String getLabel(){ return label; } public void setLabel(String label){ this.label = label; } public AddressBookContact getContact(){ return contact; } public void setContact(AddressBookContact contact){ this.contact = contact; } }