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()
        {

Reply via email to