Suggested case list:
Using timer to refresh a grid
383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlinkuser model to move item to another listbox
120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlinkDisabled list item row passed to VM-1981
296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlinkDisabled list item row passed to VM-1981
295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlinkDisabled list item row passed to VM-1981
294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlinkgrid sample with ListModel/RowRenderer
816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlinkgrid sample with ListModel/RowRenderer
809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlinkgrid sample with ListModel/RowRenderer
196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlinkgrid sample with ListModel/RowRenderer
195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlinkgrid sample with ListModel/RowRenderer
194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlinkgrid sample with ListModel/RowRenderer
193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlinkgrid sample with ListModel/RowRenderer
192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlinkgrid sample with ListModel/RowRenderer
191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlinkHierarchy table without using ZK PE/EE
1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlinkgrid sample with ListModel/RowRenderer
128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlinkuser model to move item to another listbox
1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlinkUsing timer to refresh a grid
1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlinkFire a event from child iframe
1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlinkTextbox input restriction sample
1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlinkTest web core taglib in ZUL
1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlinkLatest 10 Fiddles :
constraint binding textbox
3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlinkAnother new ZK fiddle
2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlinkAnother new ZK fiddle
1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlinkAnother new ZK fiddle
1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlinktooltip example
2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlinkAnother new ZK fiddle
1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlinkAnother new ZK fiddle
1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlinkonClose
1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlinkAnother new ZK fiddle
1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlinkZK-5912-Suggestion
2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlinkCriterion Prototype 5.x
63DavidTRegenstrief134.68.31.2271rc2p75May 28, 2013 8:53:28 AMlinkresources
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 criterionRow = criterionForm.getAttribute("criterionRow");
criterionRow.redrawChildren();
]]>
</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 onTargetsRowDoubleClicked(Event e) {
ForwardEvent fe = (ForwardEvent) e;
Event oe = fe.getOrigin();
pkg$.Criterion c = (Criterion)((Row)oe.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.toString());
criterionTypeFld.clearSelection();
criterionForm.setAttribute("criterion", c);
criterionForm.setAttribute("criterionRow", oe.getTarget());
for (Object obj: criterionTypeFld.getItems()) {
Listitem item = (Listitem)obj;
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);
row.addForward("onDoubleClick", (Component)null, "onTargetsRowDoubleClicked");
}
}