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 > > >