Repository: wicket Updated Branches: refs/heads/wicket-7.x ec1ff11dd -> b2252c329
WICKET-6244 split choices; use TreeSet for speed-up Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b2252c32 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b2252c32 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b2252c32 Branch: refs/heads/wicket-7.x Commit: b2252c32987d036aa49b0b13fa676c21041c6755 Parents: ec1ff11 Author: Sven Meier <[email protected]> Authored: Mon Sep 12 17:47:53 2016 +0200 Committer: Sven Meier <[email protected]> Committed: Mon Sep 12 17:47:53 2016 +0200 ---------------------------------------------------------------------- .../html/form/palette/component/Recorder.java | 5 ++- .../markup/html/form/palette/PaletteTest.java | 32 ++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/b2252c32/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 f75f57a..cf8ec94 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 @@ -17,11 +17,14 @@ package org.apache.wicket.extensions.markup.html.form.palette.component; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.extensions.markup.html.form.palette.Palette; @@ -163,7 +166,7 @@ public class Recorder<T> extends HiddenField<String> final IChoiceRenderer<? super T> renderer = getPalette().getChoiceRenderer(); final Collection<? extends T> choices = getPalette().getChoices(); final List<T> unselected = new ArrayList<>(choices.size()); - final String ids = getValue(); + final Set<String> ids = new TreeSet<>(Arrays.asList(Strings.split(getValue(), ','))); for (final T choice : choices) { http://git-wip-us.apache.org/repos/asf/wicket/blob/b2252c32/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 526111e..5bb3a4e 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 @@ -142,6 +142,35 @@ public class PaletteTest extends WicketTestCase tester.assertContains("<option value=\"A\">A</option>"); } + /** + * WICKET-6244 + */ + @Test + public void unselectedChoices() + { + IModel<List<String>> selected = new ListModel<>(new ArrayList<String>()); + + IModel<List<String>> all = new ListModel<>(new ArrayList<>(Arrays.asList("A", "AA", "AAA"))); + + PaletteTestPage testPage = new PaletteTestPage(selected, all); + + tester.startPage(testPage); + + FormTester formTester = tester.newFormTester(testPage.form.getId()); + formTester.setValue("palette:recorder", "AAA"); + formTester.submit(); + + Iterator<String> iterator = testPage.palette.getUnselectedChoices(); + assertEquals(true, iterator.hasNext()); + assertEquals("A", iterator.next()); + assertEquals(true, iterator.hasNext()); + assertEquals("AA", iterator.next()); + assertEquals(false, iterator.hasNext()); + } + + /** + * WICKET-5352 + */ @Test public void required() { @@ -160,6 +189,9 @@ public class PaletteTest extends WicketTestCase assertTrue(testPage.form.hasError()); } + /** + * WICKET-5352 + */ @Test public void validationErrorRawInput() {
