Hi Nino, Thanks for your reply, I m still don't find a solution, can you provide me the full component, to see if it correspond to my need :) Thanks for your help (I m a neebies in Wicket) :)
On Fri, 2006-12-01 at 14:08 +0100, Nino Wael wrote: > Hi Vincent > > This is an replacement for the recorder component that are used in the wicket > extensions. This recorder in order with a minor update of the palette(you > need to call the recreate function in the palette onmodelchanged function). > > I'll be glad to put our full component up somewhere, but I need to say all > texts are in Danish... > > > Regards Nino > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Vincent > Renaville > Sent: 30. november 2006 15:38 > To: Wicket List > Subject: Re: [Wicket-user] Palette add selected option > > Dear, > > Thanks for the respond but somebody have Already deploy the solution. > I m a newbies with Wicket, so i you have a example , it will be nice :) > > > Vincent > > On Thu, 2006-11-30 at 14:15 +0100, Nino Wael wrote: > > 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 > > > ------------------------------------------------------------------------- > 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 ------------------------------------------------------------------------- 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