| Apache Wicket > Framework Documentation > Reference library > Wicket reference > Component > DropDownChoice |
This page describes the use of the DropDownChoice component. It is not meant to replace the available javadoc. Common usage questions (FAQ) of the component will be addressed here, along with background/design information, and examples where applicable.
mypanel.properties
formid.dropdownid.null=Choose One
or
mypanel.properties
null=Choose One
Option 1: just make sure the underlying is set!
Option 2: use a model wrapper in a subclass of the dropdownchoice you want to use.
Here is an example usage code:
public class DefaultingCountryDropDown extends CountryDropDown { public DefaultingCountryDropDown(String id, IModel model) { super(id, new DefaultingModelWrapper(model, new Model("NL"))); } public DefaultingCountryDropDown(String id) { super(id, new DefaultingModelWrapper(getModel(), new Model("NL"))); } }
And here is the wrapper:
import org.apache.wicket.model.IChainingModel; import org.apache.wicket.model.AbstractWrapModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.IWrapModel; /** * * @author Erik van Oosten */ public class DefaultingModelWrapper implements IWrapModel { private IModel wrappedModel; private IModel defaultModel; public DefaultingModelWrapper(IModel wrappedModel, IModel defaultModel) { this.wrappedModel = wrappedModel; this.defaultModel = defaultModel; } public IModel getWrappedModel() { return wrappedModel; } public Object getObject() { Object value = wrappedModel.getObject(); if (value == null) { value = defaultModel.getObject(); } return value; } public void setObject(Object object) { wrappedModel.setObject(object); } public void detach() { wrappedModel.detach(); defaultModel.detach(); } }
See DropDownChoice Examples for a start...