Yeah, or implement IChoiceRenderer? 2010/1/10 Pieter Degraeuwe <[email protected]>: > check your equals() method of the selected object's classes > > On Sun, Jan 10, 2010 at 7:03 AM, Facundo Miquel > <[email protected]>wrote: > >> Hi, thanks for the tip.. unfortunately , I tried this, (a shorter version >> at >> least..) >> >> add( new DropDownChoice("userProfile.city", >> new PropertyModel(this.getModel(), "userProfile.city"), >> new LoadableDetachableModel() { >> �...@override >> protected Object load() { >> return sysMultivaluesProvider.getMVList("CITY"); >> } >> } >> ) >> ); >> >> but the problem is the same the selected value is persisted into the >> database but when I edit the record the value is not "selected" in the >> dropdown.. any clues? >> >> I'm obviously missing something!! >> >> TIA >> >> >> On Thu, Jan 7, 2010 at 1:43 PM, Kogel, Jonck-van-der < >> [email protected]> wrote: >> >> > Hi, >> > I also had this problem once. It turned out to have to do with my list >> > of choices becoming stale. I solved this by putting the choices in a >> > LoadableDetachableModel. >> > >> > ie: >> > >> > IModel<List<YourObject>> yourObjectsModel = new >> > LoadableDetachableModel<List<YourObject>>() { >> > �...@override >> > protected List<YourObject> load() { >> > return yourObjectService.findAll(); >> > } >> > >> > }; >> > >> > add(new YourDropDownChoice<YourObject>("foo", >> > new PropertyModel<YourObject>(yourModel, "bar"), >> > yourObjectsModel)); >> > >> > >> > ________________________________ >> > >> > From: Facundo Miquel [mailto:[email protected]] >> > Sent: donderdag 7 januari 2010 15:18 >> > To: [email protected] >> > Subject: DropDownChoice and selected value... >> > >> > >> > Hello all.. >> > >> > First of all, I know that this has been discussed here, I searched the >> > archives but could not find an answer, or at least understand one, so >> > please If someone can help me I would greatly appreciate it... >> > >> > >> > I have a small problem with Drop Down Choices and the selected value >> > when editing an existing record... and I wanted to validate that I'm >> > doing things the correct way.. and if so.. if there is a known issue.... >> > >> > the scenario is as follows... >> > >> > I created an extended class (just to simplify my work) to generate DDC >> > from a multivalues tables (aka, a table where one holds different types >> > of things.. countries, cities, status codes, etc..). >> > >> > The rest of the mail will be in RED for readability... >> > >> > In my tables I'm required to store the code and not the value so >> > basically I created the following class..(these are fractions.. I'm >> > attaching the actual clasess..) >> > >> > public class mvDropDownChoice extends DropDownChoice { >> > ... >> > static List mvValues = null; >> > @SuppressWarnings("serial") >> > public mvDropDownChoice(String id, String mvCode, IModel model) { >> > super(id, new PropertyModel(model, >> > id),sysMultivaluesProvider.getMVList(mvCode),new IChoiceRenderer() { >> > public String getDisplayValue(Object object) { >> > SysMultivalues mv = (SysMultivalues) object; >> > return mv.getMvMeaning(); >> > } >> > public String getIdValue(Object object, int index) { >> > if (index == -1) >> > return null; >> > return ((SysMultivalues)mvValues.get(index)).getMvCode(); >> > } >> > }); >> > mvValues = sysMultivaluesProvider.getMVList(mvCode); >> > } >> > ... >> > .. >> > >> > >> > now I call this in the following way.. >> > --- >> > .... >> > import net.databinder.valid.hib.ValidDataForm; >> > >> > @AuthorizeInstantiation(Roles.USER) >> > public class updateUserProfile extends Panel{ >> > >> > private static final long serialVersionUID = 2834437668800017171L; >> > EditForm form; >> > ... >> > public updateUserProfile(String id, String userId) { >> > super(id); >> > final Integer userIdInt = Integer.parseInt(userId); >> > add(form = new EditForm("userProfileForm", >> > Long.parseLong(userId.trim()))); >> > >> > >> > >> > >> > } >> > >> > >> > >> > >> > protected class EditForm extends ValidDataForm { >> > @SuppressWarnings({ "serial", "unchecked" }) >> > public EditForm(String id, Long userId) { >> > super(id, SecUsers.class,userId); >> > add(new TextField("userName").setRequired(true)); >> > ..... >> > add(new mvDropDownChoice("userProfile.country","COUNTRY", >> > this.getModel())); >> > ..... >> > >> > and this generates the following HTML output >> > -- >> > <select name="userProfile.country" class="select" >> > wicket:id="userProfile.country"> >> > <option selected="selected" value="">Choose One</option> >> > >> > <option value="ARG">Argentina</option> >> > <option value="UY">Uruguay</option> >> > </select> >> > >> > --- >> > >> > >> > Wich is correct, O have the code.. as the value. the description as the >> > user readable choice.. the CODE is persisted to the database (AKA in a >> > select country from sec_users the country is returned ARG | UY and not >> > Argentina | Uruguay which is what I need..) but my problem as stated >> > before is that I can't get the choice to come up with the correct >> > selected value (Argentina / Uruguay) and it always comes out with >> > "Choose One".. >> > >> > >> > >> > >> > TIA >> > >> > >> > >> > >> > >> > > > > -- > Pieter Degraeuwe > Systemworks bvba > Belgiëlaan 61 > 9070 Destelbergen > GSM: +32 (0)485/68.60.85 > Email: [email protected] > visit us at http://www.systemworks.be >
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
