Hi Moez,

I'll give that a try when I have the code in front of me.  But I'd be
surprised if that works, because I am doing precisely the same thing on
another page, including using a Set for the selected item model.  In that
instance, there's no problem.



On Mon, Apr 19, 2010 at 11:55 AM, moèz ben rhouma
<benrhouma.m...@gmail.com>wrote:

> Try to change the type of selectedParties  from set to List selectedParties
> = new ArrayList();
>
> 2010/4/19 Ray Weidner <ray.weidner.wic...@gmail.com>
>
> > Hi All,
> >
> > I'm trying to do something pretty simple: create a choice list with
> > multi-select, which I iterate through upon clicking a button.
> >  Unfortunately, it looks like my selections aren't being recorded in the
> > model that's supposed to receive them.  Here's what the pertinent code
> > looks
> > like:
> >
> > - Java:
> >
> > public EditIssuePage extends WebPage {
> >   // I've tried removing the 'transient' keyword, but that doesn't change
> > anything
> >   transient private Set <Party> selectedParties = new HashMap <Party> ();
> >   ...
> >   public EditIssuePage () {
> >      ...
> >      Form form = new Form ("editIssueForm");
> >      add (form);
> >      ...
> >      ListMultipleChoice <Party> partyChoice = new ListMultipleChoice
> > <Party> (
> >            "parties",
> >            new PropertyModel (this, "selectedParties"),
> >            new LoadableDetachableModel <List <Party>> () {
> >               @Override
> >               public List <Party> load () {
> >                  return new Vector <Party> (retrieveAllPartiesFromDAO
> ());
> >               }
> >            },
> >            new IChoiceRenderer <Party> () {
> >               public Object getDisplayValue (Party object) {
> >                  return object.getFullName ();
> >               }
> >
> >               public String getIdValue (Party object, int index) {
> >                  return object.getId ();
> >               }
> >            }
> >      );
> >      Button addPartiesButton = new Button ("addPartiesButton") {
> >         @Override
> >         public void onSubmit () {
> >            logger.debug ("Number of selected parties: " +
> > selectedParties.size ());     // always reporting zero!
> >            for (Party selectedParty : selectedParties) {
> >               ...
> >            }
> >         }
> >      };
> >      form.add (partyChoice);
> >      form.add (addPartiesButton);
> >   }
> >
> >   private Set <Party> retrieveAllPartiesFromDAO () {
> >      // does what it sounds like
> >   }
> > }
> >
> > - HTML: (My memory is a bit hazy here; I don't have any of this code in
> > front of me as I write this)
> >
> > ...
> > <select multiple wicket:id="parties">
> >   <option>[A party should be here]</option>
> > </select>
> > <submit wicket:id="addPartiesButton" name="Add Selected Parties"/>
> > ...
> >
> > The page renders fine, with all Party objects listed for selection.  But
> > when I select one or more of the rows and click the button, the log
> message
> > I see is "Number of selected parties: 0", no matter what.  I have very
> > similar logic working on another page, so I'm pretty confused about
> what's
> > the problem here.  All advice is much appreciated.
> >
> > Thanks,
> > Ray Weidner
> >
>

Reply via email to