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