package com.webobjects.woextensions;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver._private.WORadioButtonList;
/**
* XHTML version of WORadioButtonList
*
* @see WORadioButtonList
* @author mendis
*/
public class WXRadioButtonList extends WOComponent {
/**
* Do I need to update serialVersionUID?
* See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
* <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
*/
private static final long serialVersionUID = 1L;
public WXRadioButtonList(WOContext context) {
super(context);
}
public int index;
private String _id;
@Override
public boolean isStateless() {
return true;
}
@Override
public void reset() {
super.reset();
_id = null;
}
/*
* api of component
*/
public static interface Bindings {
public static final String selection = "selection";
public static final String item = "item";
public static final String id = "id";
public static final String name = "name";
public static final String index = "index";
public static final String prefix = "prefix"; // TODO
public static final String suffix = "suffix"; // TODO
}
// accesors
public Object selection() {
return valueForBinding(Bindings.selection);
}
public void setSelection(Object selection) {
setValueForBinding(selection, Bindings.selection);
}
private Object item() {
return valueForBinding(Bindings.item);
}
public boolean checked() {
return (selection() != null) ? selection().equals(item()) : false;
}
public void setChecked(boolean checked) {
if (checked) setSelection(item());
else setSelection(null);
}
public String elementName() {
return hasBinding(Bindings.name) ? (String) valueForBinding(Bindings.name) : _id();
}
public String id() {
return _id() + "_" + index;
}
private String _id() {
if (_id == null) _id = hasBinding(Bindings.id) ? (String) valueForBinding(Bindings.id) : context().javaScriptElementID();
return _id;
}
public void setIndex(int i) {
index = i;
setValueForBinding(Integer.valueOf(index), Bindings.index);
}
}