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

Reply via email to