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?
> > >
> >
> >
> >
>
>

Reply via email to