Repository: wicket Updated Branches: refs/heads/master eee6669db -> 5b7547fb8
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/5b7547fb Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5b7547fb Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5b7547fb Branch: refs/heads/master Commit: 5b7547fb80a8ec0b25e20f2b9aef8aaa5011a96c Parents: eee6669 Author: Sven Meier <[email protected]> Authored: Mon Sep 12 17:47:53 2016 +0200 Committer: Sven Meier <[email protected]> Committed: Mon Sep 12 17:54:35 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/5b7547fb/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/5b7547fb/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() {
