Why do you care what the id's are? Wicket doesn't store the ID anywhere,
it just uses the ID to look up the list element to put into the model.

jk

On Sun, May 10, 2009 at 08:08:30AM -0700, Oblivian wrote:
> 
> After changing genders from List<Gender> to List<String>, I'm seeing the
> opposite behaviour.  The values are coming across as ['m','f'] but the id's
> are ['0','1']
> 
> Overriding getIdValues() instead of getDisplayValues() seems to work.
> 
> 
> John Krasnay wrote:
> > 
> > The golden rule of DropDownChoice is that the values in the list must be
> > the same as the property you are trying to set. In your case, if you
> > want basicDemographicInfo.gender to be set to "m" or "f", you must pass
> > the DropDownChoice the list [ "m", "f" ]. You'll then need a renderer
> > that produces the appropriate display value:
> > 
> > new ChoiceRender() {
> >     public Object getDisplayValue(Object value) {
> >         // here, value will be "m" or "f"
> >         // look up and return "Male" or "Female" accordingly
> >     }
> > }
> > 
> > You shouldn't care about the ID value. The default provided by
> > ChoiceRenderer should be fine.
> > 
> > jk
> > 
> > On Sat, May 09, 2009 at 05:52:29PM -0700, Oblivian wrote:
> >> 
> >> basicDemographicInfo.gender is a String 
> >> and 
> >> genders is List<String>
> >> 
> >> 
> >> 
> >> John Krasnay wrote:
> >> > 
> >> > What is the type of the "gender" property of BasicDemographicInfo?
> >> > 
> >> > jk
> >> > 
> >> > On Sat, May 09, 2009 at 12:39:58PM -0700, Oblivian wrote:
> >> >> 
> >> >> Not sure what I'm doing wrong.  I need a DropDownChoice with ...
> >> >> 
> >> >> <option value="f">Female</option>
> >> >> <option value="m">Male</option>
> >> >> 
> >> >> have a basic class like this ...
> >> >> 
> >> >> public class Gender  implements Serializable {
> >> >>         String id;
> >> >>         String name;
> >> >>         public Gender();
> >> >>         public Gender(String id, String name);
> >> >>         public String getId();
> >> >>         public void setId(String id);
> >> >>         public void setName(String name);
> >> >> }
> >> >> 
> >> >> A custom ChoiceRenderer ...
> >> >> 
> >> >> public class GenderChoiceRenderer implements IChoiceRenderer {
> >> >>         public Object getDisplayValue(Object arg0) {
> >> >>                 return  ((Gender) arg0).getName();
> >> >>         }
> >> >> 
> >> >>         public String getIdValue(Object arg0, int arg1) {
> >> >>                 // Sometimes this is a String
> >> >>                 if(arg0 instanceof String){
> >> >>                         return (String)arg0;
> >> >>                 }
> >> >>                 if (Utility.isNull(arg0)){
> >> >>                         return null;
> >> >> 
> >> >>                 }
> >> >>                 // Other times it is not.
> >> >>                 return ((Gender) arg0).getId();
> >> >>         }
> >> >> 
> >> >> }
> >> >> 
> >> >> ----------
> >> >> Finally in my Form...
> >> >> 
> >> >> add(new DropDownChoice("gender", new PropertyModel(model,
> >> >> "basicDemographicInfo.gender"), genders, new GenderChoiceRender()));
> >> >> 
> >> >> 
> >> >> Viewing the HTML, the id's are correct "m" and "f", however in
> >> onSubmit,
> >> >> I
> >> >> get this.
> >> >> 
> >> >> model.getBasicDemographicInfo().getGender() =
> >> >> com.spinn.sdk.db.model.gen...@30ea3e3c
> >> >> 
> >> >> 
> >> >> 
> >> >> 
> >> >> 
> >> >> Oblivian wrote:
> >> >> > 
> >> >> >  List test = Arrays.asList(new String[] { "A", "B", "C" });
> >> >> >  add(new DropDownChoice("test", test));
> >> >> > 
> >> >> > How can I make the Id's match the Values?  There coming through as 
> >> >> > 1,2,3.  I've tried custom ChoiceRenderer, but seem to be missing
> >> >> > something.
> >> >> > 
> >> >> > Any help is appreciated.
> >> >> > 
> >> >> >
> >> ---------------------------------------------------------------------
> >> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> >> > For additional commands, e-mail: users-h...@wicket.apache.org
> >> >> > 
> >> >> > 
> >> >> > 
> >> >> 
> >> >> -- 
> >> >> View this message in context:
> >> >> http://www.nabble.com/DropDownChoice-ID%27s-tp23453868p23463880.html
> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >> 
> >> >> 
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >> >> 
> >> > 
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > For additional commands, e-mail: users-h...@wicket.apache.org
> >> > 
> >> > 
> >> > 
> >> 
> >> -- 
> >> View this message in context:
> >> http://www.nabble.com/DropDownChoice-ID%27s-tp23453868p23466101.html
> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> 
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >> 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> > 
> > 
> > 
> 
> -- 
> View this message in context: 
> http://www.nabble.com/DropDownChoice-ID%27s-tp23453868p23470952.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to