I have changed the code to "ajax like'. But the problem also could not be
solved.

The code bellow do not change the palette's selected values and let it empy.
But I really have choice some value before. Why? Could anyone help me,
thanks!
if(selectedMap.containsKey(nowSelectedValue)){

                                                        
setSelectedList((ArrayList)selectedMap.get(nowSelectedValue));                  
                                
testResult("getSelectedList",getSelectedList());
                                                }   


-----------------------------
the code below:
package palette_choice;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import wicket.ajax.AjaxRequestTarget;
import wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import wicket.ajax.form.AjaxFormSubmitBehavior;
import wicket.extensions.markup.html.form.palette.Palette;
import wicket.markup.html.WebPage;
import wicket.markup.html.form.ChoiceRenderer;
import wicket.markup.html.form.DropDownChoice;
import wicket.markup.html.form.Form;
import wicket.model.CompoundPropertyModel;
import wicket.model.PropertyModel;

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 Map availibleMap=new HashMap();
                 private Map selectedMap=new HashMap();
                                                
             private List availibleList=new ArrayList(); 
             private List selectedList=new ArrayList(); 
                
                 private String mainChoice;  
        
        public PaletteChoice(){
                
                final Map mainMap=new HashMap();
                //List mainList=new ArrayList();
                
                final Map availibleMap=new HashMap();
                final Map 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);
                 choice.add(new AjaxFormComponentUpdatingBehavior("onChange") 
                {

                                protected void onUpdate(AjaxRequestTarget 
target)
                                {
                                        String nowSelectedValue=getMainChoice();
                                        setMainChoice(nowSelectedValue);
                                        
                                        
System.out.println("choice:"+nowSelectedValue);                                 
        
                                        
                                        
if(mainMap.containsKey(nowSelectedValue)){
                                                
                                                
if(availibleMap.containsKey(nowSelectedValue)){

                                                        
setAvailibleList((ArrayList)availibleMap.get(nowSelectedValue));   
                                                        
testResult("getAvailibleList",getAvailibleList());
                                                }
                                                
                                                
if(selectedMap.containsKey(nowSelectedValue)){

                                                        
setSelectedList((ArrayList)selectedMap.get(nowSelectedValue));                  
                                
testResult("getSelectedList",getSelectedList());
                                                }                               
                

                                        }                                       
                

                                        target.addComponent(palette);

                                }
                        });     
                
            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) {
                                                                 
                                 String nowSelectedValue=getMainChoice();
                                 
                                        
if(mainMap.containsKey(nowSelectedValue)){
/*
                                                
if(availibleMap.containsKey(nowSelectedValue)){
                                                        
                                                        
availibleMap.put(nowSelectedValue,getAvailibleList());  
                                                
System.out.println("size:"+((ArrayList)availibleMap.get(nowSelectedValue)).size());
                                                }
*/                                              
                                                
if(selectedMap.containsKey(nowSelectedValue)){
                                                        
                                                        
selectedMap.put(nowSelectedValue,getSelectedList());    
                                                }
                                                
                                                System.out.println("******");
                                                //target.addComponent(choice)   
        ;                               

                                        }                                       
                        }
        
                });                 
                
                form.add(palette);
        }

                public List getAvailibleList() {
                        return availibleList;
                }

                public void setAvailibleList(List availibleList) {
                        this.availibleList = availibleList;
                }

                public List getSelectedList() {
                        return selectedList;
                }

                public void setSelectedList(List selectedList) {
                        this.selectedList = selectedList;
                }

                public String getMainChoice() {
                        return mainChoice;
                }

                public void setMainChoice(String mainChoice) {
                        this.mainChoice = mainChoice;
                }
                
                public void testResult(String info,List list)
                {
                        System.out.println(info+" ***begin***");
                        Iterator it=list.iterator();
                        while(it.hasNext()){
                                System.out.println(it.next());
                        }
                        System.out.println(info+" ***end***");
                }
}

------------------------------------
The console show:
choice:A
getAvailibleList ***begin***
A0
A1
A2
A3
A4
getAvailibleList ***end***
getSelectedList ***begin***
getSelectedList ***end***
******
choice:B
getAvailibleList ***begin***
B0
B1
B2
B3
B4
getAvailibleList ***end***
getSelectedList ***begin***
getSelectedList ***end***
******
choice:A
getAvailibleList ***begin***
A0
A1
A2
A3
A4
getAvailibleList ***end***
getSelectedList ***begin***
A0
getSelectedList ***end***

-- 
View this message in context: 
http://www.nabble.com/Question-about-use-Palette-with-DropDownChoice-tf4447817.html#a12691759
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