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 5.x

51DavidTRegenstrief134.68.31.2271rc2p75May 28, 2013 7:39:09 AMlink

resources

index.zulzul<!-- <?import pkg$.CriterionType?> <?import pkg$.CriterionFilter?> <?import pkg$.Criterion?> --> <zk> <zscript><![CDATA[ List ctfs = new ArrayList(); pkg$.CriterionType csCT = new pkg$.CriterionType(1, "CS", "Care Setting", true, true, 20.0); pkg$.CriterionType tcCT = new pkg$.CriterionType(2, "TC", "Term Class", false, true, 40.0); pkg$.CriterionType rCT = new pkg$.CriterionType(3, "R", "Role", true, true, 10.0); ctfs.add(new pkg$.CriterionFilter(csCT, 361L, "O", true)); ctfs.add(new pkg$.CriterionFilter(tcCT, (Long)null, "DRUG", true)); ctfs.add(new pkg$.CriterionFilter(rCT, 749L, "Staff", false)); List ctypes = new ArrayList(); ctypes.add(csCT); ctypes.add(tcCT); ctypes.add(rCT); ListModel cListModel = pkg$.CriteriaData.getCriteriaListModel(); RowRenderer cRR = new pkg$.CriterionRowRenderer(); ]]></zscript> <window border="normal" title="Orderable Concept Criteria Admin" apply="pkg$.TestComposer"> <borderlayout height="200px"> <west width="400px"> <listbox id="criterionTypeFilters" checkmark="true" multiple="true"> <listhead><listheader label="Filters"/></listhead> <zk forEach="${ctfs}"> <listitem label="${each.criterionType.name}(${each.valueString})" selected="true" value="${each}" > <attribute name="onDoubleClick"><![CDATA[ pkg$.CriterionFilter cFilter = event.target.value; cfValueNumberFld.value = cFilter.valueNumber == null ? "" : cFilter.valueNumber.toString(); cfValueStringFld.value = cFilter.valueString; cfRequiredFld.setChecked(cFilter.requiredCriterion); cfCriterionTypeFld.clearSelection(); criterionFilterForm.setAttribute("filter", cFilter); criterionFilterForm.setAttribute("filterLI", event.target); for (Listitem item: cfCriterionTypeFld.items) { if ( item.label == cFilter.criterionType.name) { item.selected=true; break; } } ]]></attribute> </listitem> </zk> </listbox> </west> <center flex="true"> <vlayout spacing="0"> <div id="criterionFilterForm">Criterion Filter Details</div> <listbox id="cfCriterionTypeFld" mold="select" rows="1"> <listhead><listheader label="Criterion Type"/></listhead> <zk forEach="${ctypes}"> <listitem label="${each.name}" value="${each}"/> </zk> </listbox> <hlayout><label>Value Number</label><textbox id="cfValueNumberFld" /></hlayout> <hlayout><label>Value String</label><textbox id="cfValueStringFld" /></hlayout> <hlayout><label>Required</label><checkbox id="cfRequiredFld" /></hlayout> <hlayout> <button label="Save"> <attribute name="onClick"><![CDATA[ pkg$.CriterionFilter cFilter = criterionFilterForm.getAttribute("filter"); Long filterNum = null; pkg$.CriterionType cType = cfCriterionTypeFld.getSelectedItem().getValue(); if ( cType.number && cfValueNumberFld.value.trim() != "" ) { filterNum=Long.parseLong(cfValueNumberFld.value); } cFilter.setCriterionType(cType); cFilter.valueNumber = filterNum; cFilter.valueString = cfValueStringFld.value; cFilter.requiredCriterion = cfRequiredFld.checked; Listitem filterLI = criterionFilterForm.getAttribute("filterLI"); filterLI.label=cFilter.criterionType.name + "(" + cFilter.valueString + ")"; ]]> </attribute> </button> </hlayout> </vlayout> </center> </borderlayout> <grid id="targets" height="400px" model="${cListModel}" rowRenderer="${cRR}"> <columns menupopup="auto"> <column label="TargetCode" width="150px"/> <column label="TargetId" width="100px" hflex="1" /> <column label="CriterionType" width="100px" hflex="1" align="center"/> <column label="ValueString" width="100px" hflex="1" align="center" /> <column label="ValueNumber" width="100px" /> <column label="CCorrelationId" width="100px" /> </columns> </grid> <!-- <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(ValueNumber)" label="ValueNumber" /> </columns> < ! - - template for group - - > <template name="model:group"> <group label="@load(each)" /> </template> <! - - template for each element in model - - > <template name="model"> <row> <attribute name="onDoubleClick"><![CDATA[ pkg$.Criterion c = event.target.value; valueNumberFld.value = c.valueNumber == null ? "" : c.valueNumber.toString(); valueStringFld.value = c.valueString; weightFld.value = c.weight == null ? "" : c.weight.toString(); criterionCorrelationIdFld = c.criterionCorrelationId; criterionTypeFld.clearSelection(); criterionForm.setAttribute("criterion", c); criterionForm.setAttribute("criterionRow", event.target); for (Listitem item: criterionTypeFld.items) { if ( item.label == c.criterionType.name) { item.selected=true; break; } } ]]></attribute> <label value="@load(each.targetCode)" /> <label value="@load(each.targetId)" /> <label value="@load(each.criterionType)" /> <label value="@load(each.valueString)" /> <label value="@load(each.valueNumber)" /> </row> </template> </grid> </div> --> <vlayout spacing="20px"> <div id="criterionForm">Criterion Details</div> <listbox id="criterionTypeFld" mold="select" rows="1"> <listhead><listheader label="Criterion Type"/></listhead> <zk forEach="${ctypes}"> <listitem label="${each.name}" value="${each}"/> </zk> </listbox> <hlayout><label>Value Number</label><textbox id="valueNumberFld" /></hlayout> <hlayout><label>Value String</label><textbox id="valueStringFld" /></hlayout> <hlayout><label>Weight</label><textbox id="weightFld" /></hlayout> <hlayout><label>CriterionCorrelationId</label><textbox id="criterionCorrelationIdFld" /></hlayout> <hlayout> <button label="Save"> <attribute name="onClick"><![CDATA[ pkg$.Criterion c = criterionForm.getAttribute("criterion"); Long filterNum = null; pkg$.CriterionType cType = criterionTypeFld.getSelectedItem().getValue(); if ( cType.number && valueNumberFld.value.trim() != "" ) { filterNum=Long.parseLong(valueNumberFld.value); } c.setCriterionType(cType); c.valueNumber = filterNum; c.valueString = valueStringFld.value; if ( weightFld.value.trim() != "") { c.weight = Double.parseDouble(weightFld.value); } else { c.weight=0.0; } if ( criterionCorrelationIdFld.value.trim() != "" ) { c.criterionCorrelationId=Long.parseLong(criterionCorrelationIdFld.value); } else { c.criterionCorrelationId=0; } //Row criterionLI = criterionForm.getAttribute("criterionLI"); ]]> </attribute> </button> </hlayout> </vlayout> <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.*; import org.zkoss.zul.event.*; public class TestComposer extends GenericForwardComposer{ Div criterionForm; Textbox valueNumberFld; Textbox valueStringFld; Textbox weightFld; Textbox criterionCorrelationIdFld; Listbox criterionTypeFld; public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); } public void onClick$btn(Event e) throws InterruptedException{ Messagebox.show("Hi btn"); } public void onDoubleClick$targets(Event e) throws Exception { pkg$.Criterion c = e.getTarget().getValue(); valueNumberFld.setValue(c.getValueNumber() == null ? "" : c.getValueNumber().toString()); valueStringFld.setValue(c.getValueString()); weightFld.setValue(c.getWeight() == null ? "" : c.getWeight().toString()); criterionCorrelationIdFld.setValue(c.criterionCorrelationId); criterionTypeFld.clearSelection(); criterionForm.setAttribute("criterion", c); criterionForm.setAttribute("criterionRow", event.target); for (Listitem item: criterionTypeFld.getIems()) { if ( item.getLabel() == c.getCriterionType().getName()) { item.setSelected(true); break; } } } } 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; Integer targetId; CriterionType criterionType; String valueString; Long valueNumber; Double weight; Integer criterionCorrelationId; public Criterion(String targetCode, Integer targetId, CriterionType criterionType,String valueString,Long valueNumber, Double weight, Integer criterionCorrelationId) { this.targetCode=targetCode; this.targetId=targetId; this.criterionType = criterionType; this.valueString = valueString; this.valueNumber = valueNumber; this.weight=weight; this.criterionCorrelationId=criterionCorrelationId; } public String getTargetCode() { return targetCode; } public void setTargetCode(String targetCode) { this.targetCode=targetCode; } public Integer getTargetId() { return targetId; } public void setTargetId(Integer targetId) { this.targetId=targetId; } public CriterionType getCriterionType() { return criterionType; } public void setCriterionType(CriterionType criterionType) { this.criterionType=criterionType; } public String getValueString() { return valueString; } public void setValueString(String valueString) { this.valueString=valueString; } public Long getValueNumber() { return valueNumber; } public void setValueNumber(Long valueNumber) { this.valueNumber = valueNumber; } public Double getWeight() { return weight; } public void setWeight(Double weight) { this.weight=weight; } public Integer getCriterionCorrelationId() { return criterionCorrelationId; } public void setCriterionCorrelationId(Integer criterionCorrelationId) { this.criterionCorrelationId=criterionCorrelationId; } } 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 pkg$.CriterionListModel; import java.util.*; public class CriteriaData { public static List<Criterion> criteria = new ArrayList<Criterion>(); static { CriterionType csCT = new CriterionType(1, "CS", "Care Setting", true, true, 20.0); CriterionType tcCT = new CriterionType(2, "TC", "Term Class", false, true, 40.0); CriterionType rCT = new CriterionType(3, "R", "Role", true, true, 10.0); criteria.add(new Criterion("1234", 1, csCT, "O", 0L, 1.5, 1)); criteria.add(new Criterion("1234", 1, tcCT, "DRUG", 0L, 1.7, 1)); criteria.add(new Criterion("4321", 1, csCT, "O", 0L, 1.3, 2)); criteria.add(new Criterion("4321", 1, csCT, "I", 0L, 1.2, 2)); criteria.add(new Criterion("4321", 1, tcCT, "DRUG", 0L, 1.2, 3)); criteria.add(new Criterion("5678", 1, tcCT, "DRUG", 0L, 1.2, 4)); criteria.add(new Criterion("5678", 1, csCT, "O", 0L, 1.8, 5)); criteria.add(new Criterion("897345", 1, tcCT, "DRUG", 0L, 1.9, 5)); criteria.add(new Criterion("897345", 1, csCT, "I", 0L,2.4, 6)); criteria.add(new Criterion("897345", 1, tcCT, "PROCEDURE", 0L, 2.1, 6)); criteria.add(new Criterion("897345", 1, csCT, "E", 0L, 2.0, 7)); criteria.add(new Criterion("897345", 1, tcCT, "TEST", 0L, 2.1, 7)); } public static List<Criterion> getAllCriteria() { return new ArrayList<Criterion>(criteria); } public static Object[] getCriteriaArray() { return criteria.toArray(); } public static ListModel getCriteriaListModel() { return new CriterionListModel(criteria); } } 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, GroupComparator, Serializable { private static final long serialVersionUID = 1L; public int compare(Object o1, Object o2) { Criterion c1 = (Criterion)o1; Criterion c2 = (Criterion)o2; return c1.getTargetCode().compareTo(c2.getTargetCode().toString()); } public int compareGroup(Object o1, Object o2) { Criterion c1 = (Criterion)o1; Criterion c2 = (Criterion)o2; if(c1.getTargetCode().equals(c2.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 { 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(); } }CriterionListModel.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.List; import java.util.ArrayList; import org.zkoss.zul.event.*; import pkg$.Criterion; public class CriterionListModel implements ListModel { List<ListDataListener> dataListeners=new ArrayList<ListDataListener>(); List<Criterion> criteria = new ArrayList<Criterion>(); public CriterionListModel(List<Criterion> criteria) { this.criteria.addAll(criteria); } public void addListDataListener(ListDataListener l) { dataListeners.add(l); } public Object getElementAt(int idx) { return criteria.get(idx); } public int getSize() { return criteria.size(); } public void removeListDataListener(ListDataListener l) { dataListeners.remove(l); } } CriterionRowRenderer.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 CriterionRowRenderer implements RowRenderer { public void render( Row row, Object data) { Label targetCode = new Label(); Label targetId = new Label(); Label criterionType = new Label(); Label valueString = new Label(); Label valueNumber = new Label(); Label criterionCorrId = new Label(); Criterion c = (Criterion) data; targetCode.setValue(c.getTargetCode()); targetId.setValue(Long.toString(c.getTargetId())); criterionType.setValue(c.getCriterionType().getName()); valueString.setValue(c.getValueString()); valueNumber.setValue(Long.toString(c.getValueNumber())); criterionCorrId.setValue(Integer.toString(c.getCriterionCorrelationId())); row.appendChild(targetCode); row.appendChild(targetId); row.appendChild(criterionType); row.appendChild(valueString); row.appendChild(valueNumber); row.appendChild(criterionCorrId); row.setValue(c); } }