I think I have something somewhere... As I remember you need to update the recorder component...
Below is only meant as a sniplet(notice the recreate model, which now are called from the palette onchange function).. package com.sas.jobindsats.ui.palette.component; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; import wicket.Component; import wicket.markup.html.form.HiddenField; import wicket.markup.html.form.IChoiceRenderer; import wicket.model.AbstractModel; import wicket.util.string.Strings; import com.sas.jobindsats.ui.palette.Palette; /** * Component to keep track of selections on the html side. Also used for * encoding and decoding those selections between html and java. * * @author Igor Vaynberg ( ivaynberg ) */ public class Recorder extends HiddenField { private static final long serialVersionUID = 1L; private static final String[] EMPTY_IDS = new String[0]; private final String seperator = "#"; /** conviniently maintained array of selected ids */ private String[] ids; /** parent palette object */ private Palette palette; /** * @return parent Palette object */ public Palette getPalette() { return palette; } /** * @param id * component id * @param palette * parent palette object */ public Recorder(String id, Palette palette) { super(id); this.palette = palette; // BELOW ENSURES THAT IDS ARE NOT NULL reCreateModel(); AbstractModel model = new AbstractModel() { public Object getObject(Component component) { StringBuffer modelStringBuffer = new StringBuffer(); for (int i = 0; ids.length > i; i++) { modelStringBuffer.append(ids[i]); if (i + 1 < ids.length) { modelStringBuffer.append(seperator); } } // set model and update ids array String modelString = modelStringBuffer.toString(); return modelString; } public void setObject(Component component, Object object) { updateIds((String) object); }; }; setModel(model); } protected void onValid() { super.onValid(); updateIds(); } /** * @return iterator over selected choices */ public Iterator getSelectedChoices() { IChoiceRenderer renderer = getPalette().getChoiceRenderer(); if (ids.length == 0) { return Collections.EMPTY_LIST.iterator(); } List selected = new ArrayList(ids.length); for (int i = 0; i < ids.length; i++) { Iterator it = getPalette().getChoices().iterator(); while (it.hasNext()) { final Object choice = it.next(); if (renderer.getIdValue(choice, 0).equals(ids[i])) { selected.add(choice); break; } } } return selected.iterator(); } /** * @return iterator over unselected choices */ public Iterator getUnselectedChoices() { IChoiceRenderer renderer = getPalette().getChoiceRenderer(); Collection choices = getPalette().getChoices(); if (choices.size() - ids.length == 0) { return Collections.EMPTY_LIST.iterator(); } List unselected = new ArrayList(Math .max(1, choices.size() - ids.length)); Iterator it = choices.iterator(); while (it.hasNext()) { final Object choice = it.next(); final String choiceId = renderer.getIdValue(choice, 0); boolean selected = false; for (int i = 0; i < ids.length; i++) { if (ids[i].equals(choiceId)) { selected = true; break; } } if (!selected) { unselected.add(choice); } } return unselected.iterator(); } protected void onInvalid() { super.onInvalid(); updateIds(); } private void updateIds() { updateIds(getValue()); } public void updateIds(String value) { if (Strings.isEmpty(value)) { ids = EMPTY_IDS; } else { ids = value.split(seperator); } } public void reCreateModel() { // construct the model string based on selection collection IChoiceRenderer renderer = getPalette().getChoiceRenderer(); StringBuffer modelStringBuffer = new StringBuffer(); Iterator selection = ((Collection) getPalette().getModelObject()) .iterator(); while (selection.hasNext()) { modelStringBuffer.append(renderer.getIdValue(selection.next(), 0)); if (selection.hasNext()) { modelStringBuffer.append(seperator); } } // Get values from modelstringbuffer String modelString = modelStringBuffer.toString(); // Only add if not already added String[] local = getValue().split(seperator); for (int i = 0; local.length > i; i++) { if (modelString.indexOf(local[i]) == -1) { modelString += seperator + local[i]; } } updateIds(modelString); } } -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Vincent Renaville Sent: 30. november 2006 11:40 To: Wicket List Subject: [Wicket-user] Palette add selected option Dear, I use the paleete component, to assigne option to a User. but I don't find a functionnality, how to set already selected option ?. Exemple : a user selected option, I store it into a database: In the futur, the user want to update his option, at the moment he doesn't see his previous selected option. Do you have a solution. Kind regards, Vincent ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user