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 :

constraint binding textbox

3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlink

Another new ZK fiddle

2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlink

Another new ZK fiddle

1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlink

Another new ZK fiddle

1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlink

tooltip example

2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlink

Another new ZK fiddle

1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlink

Another new ZK fiddle

1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlink

onClose

1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlink

Another new ZK fiddle

1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlink

ZK-5912-Suggestion

2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlink

Criterion Prototype Again

85DavidTRegenstrief134.68.31.22712rfh30May 22, 2013 3:55:42 AMlink

resources

index.zulzul<zk> <?import pkg$.CriterionType?> <?import pkg$.CriterionFilter?> <zscript><![CDATA[ List ctfs = new ArrayList(); ctfs.add(new CriterionFilter(new CriterionType(1, "CS", "Care Setting", true, true, 20.0), 361, "O", true)); ctfs.add(new CriterionFilter(new CriterionType(2, "TC", "Term Class", false, true, 40.0), null, "DRUG", true)); ctfs.add(new CriterionFilter(new CriterionType(3, "R", "Role", true, true, 10.0), 749, "Staff", false)); List<CriterionType> ctypes = new ArrayList<CriterionType>(); ctypes.add(new CriterionType(1, "CS", "Care Setting", true, true, 20.0)); ctypes.add(new CriterionType(2, "TC", "Term Class", false, true, 40.0)); ctypes.add(new CriterionType(3, "R", "Role", true, true, 10.0)); ]]></zscript> <window border="normal" title="Orderable Concept Criteria Admin" apply="pkg$.TestComposer"> <borderlayout height="300px"> <west width="300px"> <listbox id="criterionTypeFilters" checkmark="true" multiple="true"> <listhead><listheader label="Filters"/></listhead> <zk forEach="${ctfs}"> <listitem label="${each.criterionType.name}(${each.valueString})" selected="true"/> </zk> </listbox> </west> <center flex="true"> <vlayout spacing="0"> <panel width="100%"> <panelchildren> <div>Criterion Type Filter Details</div> <listbox id="criterionType" mold="select" rows="1"> <listhead><listheader label="Criterion Type"/></listhead> <zk forEach="${ctypes}"> <listitem label="${each.name}"/> </zk> </listbox> <label>Value Number</label><textbox id="valueNumber" /> <label>Value String</label><textbox id="valueString" /> <label>Required</label><checkbox id="required" /> </panelchildren> </panel> </vlayout> </center> </borderlayout> <div apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.CriteriaViewModel')"> <grid id="targets" height="400px" model="@load(vm.criteriaModel)"> <columns menupopup="auto"> <column sort="auto(TargetCode)" label="TargetCode" width="150px"/> <column sort="auto(TargetId)" label="TargetId" hflex="1" /> <column sort="auto(CriterionType)" label="CriterionType" hflex="1" align="center"/> <column sort="auto(ValueString)" label="ValueString" hflex="1" align="center" /> <column sort="auto(ValueInt)" label="ValueInt" /> </columns> <!-- template for group --> <template name="model:group"> <group label="@load(each)" /> </template> <!-- template for each element in model --> <template name="model"> <row> <label value="@load(each.targetCode)" /> <label value="@load(each.targetId)" /> <label value="@load(each.criterionType)" /> <label value="@load(each.valueString)" /> <label value="@load(each.valueInt)" /> </row> </template> </grid> </div> <button id="btn" label="Click Me To Evalute Event Binding With Composer" /> </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("Hi btn"); } } Criterion.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 Criterion { String targetCode; String targetId; String criterionType; String valueString; String valueInt; public Criterion(String targetCode, String targetId, String criterionType,String valueString,String valueInt) { this.targetCode=targetCode; this.targetId=targetId; this.criterionType = criterionType; this.valueString = valueString; this.valueInt = valueInt; } public String getTargetCode() { return targetCode; } public String getTargetId() { return targetId; } public String getCriterionType() { return criterionType; } public String getValueString() { return valueString; } public String getValueInt() { return valueInt; } } CriteriaData.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.*; public class CriteriaData { public static List<Criterion> criteria = new ArrayList<Criterion>(); static { criteria.add(new Criterion("1234", "1", "CS", "O", "")); criteria.add(new Criterion("1234", "1", "TC", "DRUG", "")); criteria.add(new Criterion("4321", "1", "CS", "O", "")); criteria.add(new Criterion("4321", "1", "CS", "I", "")); criteria.add(new Criterion("4321", "1", "TC", "DRUG", "")); criteria.add(new Criterion("5678", "1", "TC", "DRUG", "")); criteria.add(new Criterion("5678", "1", "CS", "O", "")); criteria.add(new Criterion("897345", "1", "TC", "DRUG", "")); criteria.add(new Criterion("897345", "1", "CS", "I", "")); criteria.add(new Criterion("897345", "1", "TC", "PROCEDURE", "")); criteria.add(new Criterion("897345", "1", "CS", "E", "")); criteria.add(new Criterion("897345", "1", "TC", "TEST", "")); } public static List<Criterion> getAllCriteria() { return new ArrayList<Criterion>(criteria); } public static Object[] getCriteriaArray() { return criteria.toArray(); } } CriteriaViewModel.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 CriteriaViewModel { private boolean showGroup = true; public CriteriaGroupingModel getCriteriaModel() { return new CriteriaGroupingModel(CriteriaData.getAllCriteria(), new CriteriaComparator(), this.showGroup); } }CriteriaComparator.javajavaimport java.io.Serializable; import java.util.Comparator; import org.zkoss.zul.GroupComparator; public class CriteriaComparator implements Comparator<Criterion>, GroupComparator<Criterion>, Serializable { private static final long serialVersionUID = 1L; public int compare(Criterion o1, Criterion o2) { return o1.getTargetCode().compareTo(o2.getTargetCode().toString()); } public int compareGroup(Criterion o1, Criterion o2) { if(o1.getTargetCode().equals(o2.getTargetCode())) return 0; else return 1; } }CriteriaGroupingModel.javajava import java.util.Comparator; import java.util.List; import org.zkoss.zul.GroupsModelArray; public class CriteriaGroupingModel extends GroupsModelArray<Criterion, String, String, Object> { private static final long serialVersionUID = 1L; private static final String footerString = "Total %d items"; private boolean showGroup; public CriteriaGroupingModel(List<Criterion> data, Comparator<Criterion> cmpr, boolean showGroup) { super(data.toArray(new Criterion[0]), cmpr); this.showGroup = showGroup; } protected String createGroupHead(Criterion[] groupdata, int index, int col) { String ret = ""; if (groupdata.length > 0) { ret = groupdata[0].getTargetCode(); } return ret; } protected String createGroupFoot(Criterion[] groupdata, int index, int col) { return String.format(footerString, groupdata.length); } public boolean hasGroupfoot(int groupIndex) { boolean retBool = false; if(showGroup) { retBool = super.hasGroupfoot(groupIndex); } return retBool; } }CriterionFilter.javajavapublic class CriterionFilter { Integer criterionTypeId; CriterionType criterionType; Long valueNumber; String valueString; boolean requiredCriterion = false; public CriterionFilter(CriterionType criterionType, Long valueNumber, String valueString, boolean requiredCriterion) { this(criterionType==null ? null : criterionType.getCriterionTypeId(), valueNumber, valueString, requiredCriterion); this.criterionType=criterionType; } public CriterionFilter(Integer criterionTypeId, Long valueNumber, String valueString, boolean requiredCriterion) { this.criterionTypeId=criterionTypeId; this.valueNumber=valueNumber; this.valueString=valueString; this.requiredCriterion=requiredCriterion; } public CriterionFilter() { this.criterionType=new CriterionType(); } public CriterionType getCriterionType() { return criterionType; } public void setCriterionType(CriterionType criterionType) { this.criterionType = criterionType; if ( criterionType != null && criterionType.getCriterionTypeId() != null ) { this.criterionTypeId = criterionType.getCriterionTypeId(); } } public Integer getCriterionTypeId() { return criterionTypeId; } public void setCriterionTypeId(Integer criterionTypeId) { this.criterionTypeId = criterionTypeId; } public Long getValueNumber() { return valueNumber; } public void setValueNumber(Long valueNumber) { this.valueNumber = valueNumber; } public String getValueString() { return valueString; } public void setValueString(String valueString) { this.valueString = valueString; } public boolean isRequiredCriterion() { return requiredCriterion; } public void setRequiredCriterion(boolean requiredCriterion) { this.requiredCriterion = requiredCriterion; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(this.getClass().getName()).append(":"); if ( criterionType != null ) { sb.append(getCriterionType()).append(":"); if ( criterionType.isNumber()) { sb.append(this.getValueNumber()).append(":"); } if ( criterionType.isString() ) { sb.append(this.getValueString()); } } return sb.toString(); } }CriterionType.javajavaimport java.io.Serializable; public class CriterionType implements Serializable { Integer criterionTypeId; String name; String description; boolean number = false; boolean string = false; Double weight; public CriterionType() { } public CriterionType(Integer criterionTypeId, String name, String description, boolean number, boolean string, Double weight) { this.criterionTypeId=criterionTypeId; this.name=name; this.description=description; this.number=number; this.string=string; this.weight=weight; } public Integer getCriterionTypeId() { return criterionTypeId; } public void setCriterionTypeId(Integer criterionTypeId) { this.criterionTypeId = criterionTypeId; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Double getWeight() { return weight; } public void setWeight(Double weight) { this.weight = weight; } public boolean isNumber() { return number; } public void setNumber(boolean number) { this.number = number; } public boolean isString() { return string; } public void setString(boolean string) { this.string = string; } public boolean isNumberAndString() { return (isNumber() && isString()); } @Override public String toString() { return getName(); } }