You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Gonzalo Aguilar Delgado <ga...@aguilardelgado.com> on 2012/07/15 21:51:33 UTC

Re: onSelectionChanged is not calling converters

Hi Sven, 

I'm sorry. I forgot to add this to the mailing list:

I added info to the bug filled by other user.

https://issues.apache.org/jira/browse/WICKET-4353


Forget this e-mail as this is followed in the bug tracking system.

Thank you Sven.


El lun, 14-05-2012 a las 20:38 +0200, Sven Meier escribió:

> Hi,
> 
> DropDownChoice doesn't use converters, that's intended.
> 
> What default model is your choice getting/setting values from/to? Do you 
> use a CompoundPropertyModel?
> 
> Sven
> 
> 
> On 05/14/2012 05:59 PM, Gonzalo Aguilar Delgado wrote:
> > Hello,
> >
> > I've just found working with 1.5.6 that DropDownChoice control that it
> > may be not calling Converters.
> >
> > Because the model is still a string while calling to
> > onSelectionChanged(Provincia provincia) and it fails:
> >
> >      Caused by: java.lang.ClassCastException: java.lang.String cannot be
> > cast to generated.Provincia
> >
> > I have something like this:
> >
> > DropDownChoice<Provincia>  provinciaChoice=new
> > DropDownChoice<Provincia>("provincia",new WSProvinceModel()){
> >      ...
> > protected void onSelectionChanged(Provincia provincia) {
> >                  if(provincia!=null)
> >                  {
> >                  	if(cityModel!=null)
> >                  		cityModel.setProvinceId(provincia.getId().toString());
> >                  }
> > }
> >
> > ...
> > };
> >
> >
> > ---
> >
> > In the application:
> >      @Override
> >      protected IConverterLocator newConverterLocator() {
> >              ConverterLocator converterLocator = new ConverterLocator();
> >              converterLocator.set(Provincia.class, new
> > ProvinciaEntryConverter());
> >              return converterLocator;
> >      }
> >
> >
> > It seems that it calls converter when setting the modelObject ->  So it
> > converts from Provincia to String.
> >
> > But it does not when doing the oposite. Getting model does not get
> > converted from String to provincia.
> >
> > This side of the converter never gets called.
> >
> > For a shake of completeness:
> >
> > The rederer.
> >
> > 		provinciaChoice.setChoiceRenderer(new IChoiceRenderer<Provincia>(){
> >
> > 			/**
> > 			 *
> > 			 */
> > 			private static final long serialVersionUID = 1L;
> >
> > 			@Override
> > 			public Object getDisplayValue(Provincia provincia) {
> > 				return provincia.getDescripcion();
> > 			}
> >
> > 			@Override
> > 			public String getIdValue(Provincia provincia, int index) {
> > 				return String.valueOf(provincia.getId());
> > 			}
> > 		});
> >
> > Where is the problem?
> >
> > I think that onSelectionChanged in DropDownChoice should call converter.
> >
> > 	/**
> > 	 * Called when a selection changes.
> > 	 */
> > 	public final void onSelectionChanged()
> > 	{
> > 		convertInput();
> > 		updateModel();
> > 		onSelectionChanged(getModelObject());
> > 	}
> >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>