Why use aspects for 2 when you have IComponentInstantiationListener? All you have to do is set you components model to use the TrimmingModel pasted before on the listener. I didn't try it myself but I guess that should work. Best,
Ernesto On Fri, Oct 2, 2009 at 10:57 AM, Bernhard Michal <[email protected]>wrote: > Afaik there is no way to set this behavior by some flag. But > > 1) You can extend TextField to wrap it's model with model which on > getObject() trim (ie. remove begging and trailing spaces) returning > string if Model's type is Sting (in other cases it doesn't make > sense)... when value is setted into model trimming is done by wicket > (see FormComponent#shouldTrimInput) automatically (in older version you > have to do this manually by overriding FormComponent#convertInput() > method) > > 2) you can do aspect (AspectJ?) to do the same as 1) - with aspect there > is no need to make new class of TextField's type so there is no need to > change the code base... > > 3) you can override implementation of coverters > > override Application#newConverterLocator() to > > protected IConverterLocator newConverterLocator() { > ConverterLocator locator = new ConverterLocator(); > locator.set(String.class, new IConverter() { > > public Object convertToObject(String value, > Locale locale) { > return convertToString(value, > locale); > } > > public String convertToString(Object value, > Locale locale) { > return value.toString().trim(); > // see trim() which remove trailing and beginning spaces > } > }); > > return locator; > } > > I didn't test it but you've got the idea... But this solution is really > bad, because if you want to turn off this behaviour (trimming) in some > cases > you can't do it without overriding for example Component#getConverter() > to convert it in default way and it's a mess. > > I recommend you to trim it by hand on Model level (make some wrapper > model to do it so) or on tier (layer) where you obtain data (data acces > layer? service level?). It depends on if spaces have some business > meaning. If yes do it on model level otherwise on that layer. > > Best wishes > > MB > > -----Original Message----- > From: David Chang [mailto:[email protected]] > Sent: Friday, October 02, 2009 5:25 AM > To: [email protected] > Subject: Can Wicket automatically remove beginning and trailing spaces > in a text field? > > How to set it up in a Wicket application? I would like to set it up in > the application level. > > Thanks! > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
