You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2010/11/04 14:33:00 UTC

svn commit: r1030960 - in /click/trunk/click/extras: src/org/apache/click/extras/control/PickList.java test/org/apache/click/extras/control/PickListTest.java

Author: sabob
Date: Thu Nov  4 13:33:00 2010
New Revision: 1030960

URL: http://svn.apache.org/viewvc?rev=1030960&view=rev
Log:
added stateful PickList. CLK-715

Modified:
    click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java
    click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java

Modified: click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java
URL: http://svn.apache.org/viewvc/click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java?rev=1030960&r1=1030959&r2=1030960&view=diff
==============================================================================
--- click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java (original)
+++ click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java Thu Nov  4 13:33:00 2010
@@ -788,6 +788,43 @@ public class PickList extends Field {
     }
 
     /**
+     * Return the PickList state. The following state is returned:
+     * <ul>
+     * <li>{@link #getSelectedValues()}</li>
+     * </ul>
+     *
+     * @return the PickList state
+     */
+    @Override
+    public Object getState() {
+            List selectedState = getSelectedValues();
+        if (selectedState.isEmpty()) {
+            return null;
+        } else {
+            return selectedState.toArray(new String[0]);
+        }
+    }
+
+    /**
+     * Set the PickList state.
+     *
+     * @param state the PickList state to set
+     */
+    @Override
+    public void setState(Object state) {
+        if (state == null) {
+            return;
+        }
+
+        String[] pickListState = (String[]) state;
+        List<String> localSelectedState = new ArrayList<String>(pickListState.length);
+        for (String val : pickListState) {
+            localSelectedState.add(val);
+        }
+        setSelectedValues(localSelectedState);
+    }
+
+    /**
      * Validate the PickList request submission.
      * <p/>
      * A field error message is displayed if a validation error occurs.

Modified: click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java?rev=1030960&r1=1030959&r2=1030960&view=diff
==============================================================================
--- click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java (original)
+++ click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java Thu Nov  4 13:33:00 2010
@@ -131,5 +131,9 @@ public class PickListTest extends TestCa
         assertEquals("", pickList.getValue()); // PickList use value but selectedValues instead
         assertTrue(Arrays.equals(expectedState, pickList.getSelectedValues().toArray()));
         assertEquals(pickList.getSelectedValues(), (pickList.getValueObject()));
+
+        // Make sure we can still add values to the PickList after state is
+        // restored
+        pickList.addSelectedValue("004");
     }
 }