Funny, I answered the same question to my colleague this morning.
Below the code I gave him.
What happens is that the model is wrapped in another model. The wrapping
model has a defaultModel that is used to return a value when the
underlying model returns null.
Below the model wrapper you find an example on how to use it.
If you find something better, please let us know :)
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();
}
}
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")));
}
}
Regards,
Erik.
Juan Gabriel Arias wrote:
> DropDownChoice has a lot of contructors. One of them,
>
> DropDownChoice(String id, IModel model, IModel choices, ...)
>
> The first model, could be named "selectedModel". And represents the selected
> object, with a wicket model.
>
>
--
Erik van Oosten
http://day-to-day-stuff.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]