How would I disable a converter for a textfield based on the value of a
checkbox? I have the following code and if the checkbox is not checked I
don't need the converter code to run. I just would want to clear the
textfield.
final TextField mortgageAmountSpouse = new
TextField("mortgageAmountSpouse"){
@Override
public boolean isVisible() {
return
lifeInsuranceNeedsBean.isSpouseIncluded();
}
@Override
public IConverter getConverter(Class<?> type) {
//if("on".equalsIgnoreCase(payMortgageSpouseDies.getInput())){
return new
PfsDoubleConverter(args){
};
}
};
-----Original Message-----
From: Clint Checketts [mailto:[email protected]]
Sent: Thursday, March 31, 2011 10:04 PM
To: [email protected]
Subject: Re: Wicket help
Mike,
Yes, it would make your code a bit easier to read (and maintain) if you
sub-classed DoubleConverter.
Also another tip from the Wicket Cookbook (pg 27):
You can register converters in your wicket application. This way all
formcomponents that are converting Double (or a given type) will use
your customer converter. That will keep you from having to override
getConverter every time.
public class WicketApplication extends WebApplication {
protected IConverterLocator newConverterLocator() {
ConverterLocator locator =
(ConverterLocator)super.newConverterLocator();
locator.set(Double.class, new MikesDoubleConverter());
return locator;
}
I hope Igor doesn't mind me sharing all the great tips in his book. I
sound like a walking advertisement.
-Clint
On Thu, Mar 31, 2011 at 7:01 PM, Henry, Mike [GCG-PFS] <
[email protected]> wrote:
> So I have a bunch of these fields and I assume your suggesting
> subclassing DoubleConverter() and building in this functionality?
> Then I can just add the override for getConverter() and return new
> myDoubleConverter()? Thanks for the help I think Igor just sold
> another book.
>
> -----Original Message-----
> From: Clint Checketts [mailto:[email protected]]
> Sent: Thursday, March 31, 2011 6:59 PM
> To: [email protected]
> Subject: Re: Wicket help
>
> The magic is calling setVariable on the ConversionException. Thanks to
> Igor's new book <https://www.packtpub.com/apache-wicket-cookbook/book>
> for teaching me that. ;)
>
> So in your page's property file you'd have (you had the wrong case on
> *IC*onverter in your last email):
> mortgageAmountPrimary.IConverter.Double=You must enter a valid value
> for ${user}'s mortgage amount field to continue with this application.
>
> Java code:
> form.add(new
> TextField<Double>("mortgageAmountPrimary",Double.class){
>
> @Override
> public IConverter getConverter(Class<?> type)
> {
> return new DoubleConverter(){
>
> @Override
> public Double convertToObject(String value, Locale
> locale)
> {
> try{
> return super.convertToObject(value,
locale);
> }catch(ConversionException e){
> * e.setVariable("user", "Theos");*
> throw e;
> }
> }
> };
> }
> });
>
>
> I did it all inline so you could see it. But subclassing to make it
> more useable, like getting the variable's value via a passed in Model
> wouldn't hurt.
>
> -Clint
>
>
> On Thu, Mar 31, 2011 at 4:54 PM, Henry, Mike [GCG-PFS] <
> [email protected]> wrote:
>
> > I have:
> > TextField mortgageAmountPrimary = new
> > TextField("mortgageAmountPrimary",
> > Double.class);
> >
> > If the built in double conversion fails I want this custom error
> > message:
> >
> > "You must enter a valid value for Ted's mortgage amount field to
> > continue with this application."
> >
> > I need to pass in "Ted" in a variable like:
> > mortgageAmountPrimary.Iconverter.Double=You must enter a valid value
> > for ${username}'s mortgage amount field to continue with this
> application.
> >
> > So I need a 'username' var to pass in. Can you extend a converter
> > and if so how would you instruct the textfield to use it?
> > Thanks
> >
> > -----Original Message-----
> > From: Jered Myers [mailto:[email protected]]
> > Sent: Thursday, March 31, 2011 3:39 PM
> > To: [email protected]
> > Subject: Re: Wicket help
> >
> > I think you might be looking for the variablesMap(IValidatable)
> > function in AbstractValidator. You will probably need to extend
> > your validator and override that function. PatternValidator
> > overrides it to create the "pattern" variable, if you want an
example.
> >
> > On 3/31/2011 10:57 AM, Henry, Mike [GCG-PFS] wrote:
> > > Does anyone know if its possible to add your own variables to the
> > > built it converters/validators for custom messages?
> > >
> >
> >
> >
>
>