Helo! Kent  Thanks for your help.
But I still have the same question.
That's if I choice A with select A1 to selectedList and then choice B with
selected nothing to selectedList.
It's ok when I choice A again and see the A1 at selectedList.
But if I choice A with select A1 to selectedList and then choice B with
selected anything (ex:B1) to selectedList. Then when I choice A again ,there
will see that A1 not at selectedList.
So I choice before would be disappear! Why? I have any idea yet!



Kent Tong wrote:
> 
> 
> JohnSmith333 wrote:
>> 
>> I have use a Palette with DropDownChoice. I want to  change the
>> DropDownChoice's selected value and then update the Palette's lists. And
>> when I click the Palette's value ,I hope to save the change result.
>> But it's not work normally. Could anyone kind to help me? Thanks! 
>> 
> 
> Your code contains quite a lot of bugs. Try this instead:
> <pre>
> public class PaletteChoice extends WebPage implements Serializable {
>       private static final long serialVersionUID = 1L;
>       private Form form;
>       private DropDownChoice choice;
>       private Palette palette;
>       private Map mainMap = new HashMap();
>       private String mainChoice;
>       private Map availibleMap;
>       private Map selectedMap;
> 
>       public PaletteChoice() {
>               availibleMap = new HashMap();
>               selectedMap = new HashMap();
>               // data
>               mainMap.put("A", "0");
>               mainMap.put("B", "1");
>               Set mainKeySet = mainMap.keySet();
>               Iterator it = mainKeySet.iterator();
>               while (it.hasNext()) {
>                       Object ok = it.next();
>                       ArrayList availibleList = new ArrayList();
>                       for (int i = 0; i < 5; i++) {
>                               availibleList.add(String.valueOf(ok) + i);
>                       }
>                       availibleMap.put(ok, availibleList);
>                       List selectedList = new ArrayList();
>                       selectedMap.put(ok, selectedList);
>               }
>               List mainList = new ArrayList();
>               Set tmpSet = mainMap.keySet();
>               Iterator tmpIt = tmpSet.iterator();
>               while (tmpIt.hasNext()) {
>                       mainList.add((Serializable) tmpIt.next());
>               }
>               form = new Form("form", new CompoundPropertyModel(this));
>               form.setOutputMarkupId(true);
>               add(form);
>               choice = new DropDownChoice("mainChoice", mainList) {
>                       protected void onSelectionChanged(java.lang.Object 
> newSelection) {
>                       }
>                       protected boolean wantOnSelectionChangedNotifications() 
> {
>                               return true;
>                       }
>               };
>               choice.setOutputMarkupId(true);
>               form.add(choice);
>               palette = new Palette("palette",
>                               new PropertyModel(this, "selectedList"), new 
> PropertyModel(
>                                               this, "availibleList"), new 
> ChoiceRenderer("toString",
>                                               "toString"), 10, false);
>               palette.setOutputMarkupId(true);
>               palette.getRecorderComponent().add(
>                               new AjaxFormSubmitBehavior(form, "onchange") {
>                                       protected void 
> onSubmit(AjaxRequestTarget target) {
>                                               target.addComponent(form);
>                                       }
>                               });
>               form.add(palette);
>       }
>       public List getAvailibleList() {
>               return mainMap.containsKey(mainChoice) ? (List) availibleMap
>                               .get(mainChoice) : Collections.EMPTY_LIST;
>       }
>       public void setAvailibleList(List availibleList) {
>               if (mainMap.containsKey(mainChoice)) {
>                       availibleMap.put(mainChoice, availibleList);
>               }
>       }
>       public List getSelectedList() {
>               return mainMap.containsKey(mainChoice) ? (List) selectedMap
>                               .get(mainChoice) : Collections.EMPTY_LIST;
>       }
>       public void setSelectedList(List selectedList) {
>               if (mainMap.containsKey(mainChoice)) {
>                       selectedMap.put(mainChoice, selectedList);
>               }
>       }
>       public String getMainChoice() {
>               return mainChoice;
>       }
>       public void setMainChoice(String mainChoice) {
>               this.mainChoice = mainChoice;
>       }
> }
> </pre>
> 

-- 
View this message in context: 
http://www.nabble.com/Question-about-use-Palette-with-DropDownChoice-tf4447817.html#a12747859
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to