Further to this I've now checked the source and the DatePicker does
correctly pick up the date format from the DateTextField or, alternatively,
an overridden getDatePattern also works.
It seems to be going wrong when the date is sent from the DatePicker back to
the DateTextField via the onchange Javascript event handler. I've not yet
figured out how this works yet.
Has anyone used the DatePicker in this way to confirm that it does or does
not work as expected?
On Fri, Mar 28, 2008 at 1:18 PM, Eric Rotick <[EMAIL PROTECTED]> wrote:
> I have a situation where the DateTextField and DatePicker are not using
> the same date pattern although I set them to the same value.
>
> If I have an existing date in the model then it is formatted correctly and
> that date is also inherited correctly when the DatePicker opens. When I then
> select a different date in the DatePicker the correct date value is returned
> to the DateTextField but the format it wrong. Then if I submit the form I
> get an error on the DateTextField.
>
> For example, if I select a date of "28/Mar/2008" in the DatePicker it gets
> returned to the DateTextField as "28/3/2008".
>
> Any ideas?
>
> import org.apache.wicket.datetime.markup.html.form.DateTextField;
> import org.apache.wicket.datetime.PatternDateConverter;
> import org.apache.wicket.extensions.yui.calendar.DatePicker;
> ...
>
> public class DateField extends Panel {
>
> public DateField(
> String id,
> boolean readonly,
> IField field,
> IModel model
> )
> {
> super( id );
>
>
> final String dateFormat = "dd/MMM/yyyy";
> PatternDateConverter pdc = new PatternDateConverter( dateFormat,
> true );
>
> DateTextField dtf = new DateTextField( "textValue", new
> NamedAccessorModel( model, field.getModelName( ) ), pdc );
> add( dtf );
>
> DatePicker dp = new DatePicker( ) {
> protected boolean enableMonthYearSelection( ) {
> return true;
> }
> protected String getDatePattern( ) {
> return dateFormat;
> }
> };
> dtf.add( dp );
> }
>
> }
>
>
>