not sure what's wrong with your code, but i've done enum selection in
voicetribe with code that looks like the following:

            add(new DropDownChoice("genre", new Model()
            {
                @Override
                public Object getObject(Component component)
                {
                    return Genre.valuesSortedByLocalizedName();
                }
            }, new IChoiceRenderer()
            {
                public Object getDisplayValue(Object object)
                {
                    return ((Genre)object).getLocalizedName();
                }

                public String getIdValue(Object object, int index)
                {
                    return object.toString();
                }
            }));


Flavius wrote:
> 
> 
> I tried this:
> 
>                       DropDownChoice severityChoice = new 
> DropDownChoice("size",                      
>                       Arrays.asList(SIZE.values()), 
>                       new ChoiceRenderer()
>                       {
>                               public Object getDisplayValue(Object object)
>                               {
>                                       return ((SIZE)object).getName();
>                               }
>                       
>                               public String getIdValue(Object object, int 
> index)
>                               {
>                                       return ((SIZE)object).getId();
>                               }                               
>                       });
> 
> The page renders fine.  But when I submit the form, I get this error:
> 
> WicketMessage: unable to set object Small, model:
> Model:classname=[wicket.model.CompoundPropertyModel]
> 
> Root cause:
> 
> wicket.util.convert.ConversionException: Cannot parse 'Small' using format
> [EMAIL PROTECTED]
> at
> wicket.util.convert.converters.AbstractConverter.newConversionException(AbstractConverter.java:72)
> 
> As I understand it, it's trying to set an int in the Shirt model for size,
> but the drop down returned the Small object.  What I really need is
> Small.getId().  So I need to tell the form to bind the id property of the
> return object to the field "size"
> 
> 
> 
> 
> Nick Heudecker wrote:
>> 
>> IChoiceRenderer allows you to specify the id and display values for a
>> DropDownChoice.  It's exactly what you're looking for.  To explain a bit:
>> 
>> getDisplayValue(...) - returns the value you want the user to see. 
>> "Small",
>> "Medium", etc.  This is where you'd return SIZE.getName().
>> getIdValue(...) returns the value submitted to the application.  This is
>> where you'd return SIZE.getId().
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/DropDownChoice-binding-question-tf2900580.html#a8104968
Sent from the Wicket - User mailing list archive at Nabble.com.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to