I've placed the code here:

Please notice that it makes use of css that are not used inline, I've provided 
our css in our file called jobindsats.css. Make sure the component the page 
where you use the component refers to that. As written earlier you should be 
able to use our recorder and just update Igors palette(or maybe extend it) and 
reference to our recorder, only one minor change to the palette class are 
required(as I remember). And that's the onmodelchange method that needs to call 
the recorder so it can update itself. 

<a 
href=http://www.badongo.com/file/1817078>http://www.badongo.com/file/1817078</a>

Regards Nino

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Vincent Renaville
Sent: 1. december 2006 14:41
To: Wicket List
Subject: Re: [Wicket-user] Palette add selected option

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


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

Reply via email to