/* RadiogroupSelectedItemConverter.java
{{IS_NOTE
Purpose:
Description:
History:
Mon Mar 12 11:05:43 2007, Created by Henri
}}IS_NOTE
Copyright (C) 2007 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
}}IS_RIGHT
*/
package org.zkoss.zkplus.databind;
import java.util.Iterator;
import org.zkoss.zk.ui.Component;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Radiogroup;
/**
* Convert Radiogroup selected item to radio value and vice versa.
*
* @author Henri
* @deprecated As of release 7.0.0, replace with new ZK binding.
*/
public class RadiogroupSelectedItemConverter implements TypeConverter, java.io.Serializable {
private static final long serialVersionUID = 200808191534L;
public Object coerceToUi(Object val, Component comp) { //load
if (val != null) {
//iterate to find the selected radio via the value
for (Iterator it = comp.getChildren().iterator(); it.hasNext();) {
final Component child = (Component) it.next();
if (child instanceof Radio) {
if (val.equals(((Radio) child).getValue())) {
return child;
}
} else if (!(child instanceof Radiogroup)) { //skip nested radiogroup
//bug 2464484
final Object value = coerceToUi(val, child); //recursive
if (value != null) {
return value;
}
}
}
}
return null;
}
public Object coerceToBean(Object val, Component comp) { //save
return val != null ? ((Radio) val).getValue() : null;
}
}