Try this:
/**
* @param <T>
* @param formComponent
* @return T
*/
@SuppressWarnings("unchecked")
public static <T> T getConvertedValue(FormComponent<T> formComponent) {
if (formComponent instanceof AbstractSingleSelectChoice) {
try {
return (T)
abstractSingleSelectChoiceConverterMethod.invoke(formComponent,
formComponent.getValue());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
String value = formComponent.getValue();
if (Utils.isEmpty(value) &&
(!String.class.equals(formComponent.getType()))) {
value = null;
}
return (T)
formComponent.getConverter(formComponent.getType()).convertToObject(value,
formComponent.getLocale());
}
2010/4/18 Arnaud Garcia <[email protected]>:
> Hello,
>
> I would like to format a text field as soon as the onblur event is fired.
> ( number:XXXXXXXX to XX XX XX XX)
>
> I tried lot of things and I have some questions to improve my wicket
> knowledge ;-)
>
>
> 0/ First I add a Validator because I want to be sure that my String is
> formated correctly.
>
> 1/ If I add an AjaxEventBehavior on the onblur javascript event
> => I don't know how to retrieve the field value ? is it possible ?
>
> 2/ I swtich to an AjaxFormComponentUpdatingBehavior to start the full form
> pipeline...
>
> Since, the pipeline is : Required check -> Convert input -> validate ->...,
> I though it will be ok. BUT as Igor said in a previous thread, the
> convertToObject is not called for String (since we don't have to convert a
> String to String ;-), well since I understand, in my case it would have been
> pretty cool)
>
> 3/ Finally I move the convert method in the onUpdate of the
> AjaxFormComponentUpdatingBehavior and it works...
>
> =>It means that the Validator is called after the onUpdate ?
>
> 4/ finally, last question. When we have to format String dynamicaly which
> is the best way ?
>
> a) using the AjaxFormComponentUpdatingBehavior and adding the convert
> inside the onUpdate
> b) Simply using jQuery ?
>
>
> thanks for answers in the sunny monday in France !
>
> Arnaud
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]