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]