Hi,

Well, the required flag ensures that the input is not empty, not that it is
of the correct type...

If the conversion fails, is it supposed (I guessed) to throw a
ConversionException.
As it seems to not be the case, I would have overridden convert input as
follow (not tested):

class MyJodaDateTextField
{
   protected void convertInput()
   {
        super.convertInput();

        Date value = this.getConvertedInput();

        if (value == null)
        {
            //handles the error message
            ValidationError error = new ValidationError();
            error.addKey("MyJodaDateTextField.ConversionError"); //wicket6
            //error.addMessageKey("MyJodaDateTextField.ConversionError");
//wicket1.5
            error.setVariable("date", value);
            this.error(error);
         }
    }
}

MyJodaDateTextField.properties will contain:
MyJodaDateTextField.ConversionError='${date}' is not a valid Joda datetime

Also pay attention to check the type in getConverter

    {
        if (Date.class.isAssignableFrom(type))
        {
            return (IConverter<C>)new JodaDateTimeConverter();
        }

        return super.getConverter(type);
    }


Hope this helps,
Sebastien.

On Wed, Feb 13, 2013 at 4:46 PM, Sebastian Gaul <sebast...@mgvmedia.com>wrote:

> I have a TextField which overrides it's getConverter method to add a
> Joda time converter instead:
>
> new TextField<P>(id) {
>     @Override
>     public <P> IConverter<P> getConverter(Class<P> type) {
>         return (IConverter<P>) new JodaDateTimeConverter();
>     }
> };
>
> The converter returns null if input was invalid. However, I want to be
> able to flag this field as required, and I don't know how to do that:
>
>  - textField.isRequired(true) does not work, because required checks
> are done before conversion. This doesn't work for non-empty but
> invalid inputs.
>
>  - textField.add(.. some validator ..) does not work because no
> validator is called if the converter returned null.
>
> I really don't see an approach to flag my date fields as required. Do
> you know how to do that? Probably my approach is not suited at all?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to