You can wrap your models LocalDate, etc. in IModel<java.util.Date>for example
public static class LocalDateModel implements IModel<java.util.Date> {
private IModel<LocalDate> localDateModel;
public LocalDateModel(IModel<LocalDate> localDateModel){
this.localDateModel = localDateModel;
}
@Override
public Date getObject() {
return convertLocalDateToUtilDateSomehow(localDateModel.getObject());
}
@Override
public void setObject(Date object) {
localDateModel.setObject(convertUtilDateToLocalDateSomehow(object));
}
@Override
public void detach() {
localDateModel.detach();
}
}
If you then load such models into the form components that you want to use, they should work fine.
, CompoundPropertyModel , CompoundPropertyModel#wrapOnInheritance(Component component), . -
@Override
public <C> IWrapModel<C> wrapOnInheritance(Component component)
{
IWrapModel<C> actualModel = super.wrapOnInheritance(component);
if (actualModel.getObject() instanceOf LocalDate) {
return new LocalDateModelButAlsoWrapping(actualModel);
} else {
return actualModel;
}
}
LocalDateModelButAlsoWrapping LocalDateModel , IWrapModel<T>.
CompoundPropertyModel, , LocalDate, (, DateTextField), , java.util.Date.
, , (, , ), , , (, , Component DateTextField), , .