Updated Branches: refs/heads/wicket-1.5.x 594f7d509 -> 8a69ad577
WICKET-4590 palette single unselected choice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8a69ad57 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8a69ad57 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8a69ad57 Branch: refs/heads/wicket-1.5.x Commit: 8a69ad57772f75cc83ae691238a2b97f236a6e51 Parents: 594f7d5 Author: Sven Meier <svenme...@apache.org> Authored: Wed Jun 6 19:24:49 2012 +0200 Committer: Sven Meier <svenme...@apache.org> Committed: Wed Jun 6 19:24:49 2012 +0200 ---------------------------------------------------------------------- .../html/form/palette/component/Recorder.java | 16 ++++++++----- .../markup/html/form/palette/PaletteTest.java | 17 +++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/8a69ad57/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java index 6bf1214..3dd4366 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java @@ -46,7 +46,7 @@ public class Recorder<T> extends HiddenField<Object> { private static final long serialVersionUID = 1L; - /** set of selected ids */ + /** set of selected ids */ private final List<String> selectedIds; /** parent palette object */ @@ -154,7 +154,7 @@ public class Recorder<T> extends HiddenField<Object> { if (getSelectedIds().isEmpty()) { - return Collections.EMPTY_LIST; + return Collections.emptyList(); } final IChoiceRenderer<T> renderer = getPalette().getChoiceRenderer(); @@ -200,11 +200,12 @@ public class Recorder<T> extends HiddenField<Object> if (choices.size() - getSelectedIds().size() == 0) { - return Collections.<T>emptyList(); + return Collections.<T> emptyList(); } final IChoiceRenderer<T> renderer = getPalette().getChoiceRenderer(); - final List<T> unselected = new ArrayList<T>(Math.max(1, choices.size() - getSelectedIds().size())); + final List<T> unselected = new ArrayList<T>(Math.max(1, choices.size() - + getSelectedIds().size())); for (final T choice : choices) { @@ -245,9 +246,12 @@ public class Recorder<T> extends HiddenField<Object> { getSelectedIds().clear(); - for (final String id : Strings.split(value, ',')) + if (!Strings.isEmpty(value)) { - getSelectedIds().add(id); + for (final String id : Strings.split(value, ',')) + { + getSelectedIds().add(id); + } } } } http://git-wip-us.apache.org/repos/asf/wicket/blob/8a69ad57/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTest.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTest.java b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTest.java index 222c258..dd4c318 100644 --- a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTest.java +++ b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTest.java @@ -124,4 +124,21 @@ public class PaletteTest extends WicketTestCase assertEquals(1, collection.size()); assertEquals("D", collection.iterator().next()); } + + /** + * WICKET-4590 single unselected item + */ + @Test + public void choicesModelSingleNotSelected() + { + IModel<List<String>> selected = new ListModel<String>(new ArrayList<String>()); + + IModel<List<String>> all = new ListModel<String>(new ArrayList<String>(Arrays.asList("A"))); + + PaletteTestPage testPage = new PaletteTestPage(selected, all); + + tester.startPage(testPage); + + tester.assertContains("<option value=\"A\">A</option>"); + } }