You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/12/13 23:12:05 UTC

svn commit: r486859 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/dojo/form/ test/org/apache/tapestry/dojo/form/

Author: jkuhnert
Date: Wed Dec 13 14:12:04 2006
New Revision: 486859

URL: http://svn.apache.org/viewvc?view=rev&rev=486859
Log:
Resolves TAPESTRY-1171. Hopefully no one will notice.

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DefaultAutocompleteModel.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/IAutocompleteModel.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/DefaultAutocompleteModelTest.java

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java?view=diff&rev=486859&r1=486858&r2=486859
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java Wed Dec 13 14:12:04 2006
@@ -15,7 +15,6 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -125,21 +124,21 @@
         if (model == null)
             throw Tapestry.createRequiredParameterException(this, "model");
         
-        Map filteredValues = model.filterValues(getFilter());
+        List filteredValues = model.getValues(getFilter());
         
         if (filteredValues == null)
             return;
         
-        Iterator it = filteredValues.keySet().iterator();
         Object key = null;
         String label = null;
         
         JSONObject json = writer.object();
         
-        while (it.hasNext()) {
+        for (int i=0; i < filteredValues.size(); i++) {
+            Object value = filteredValues.get(i);
             
-            key = it.next();
-            label = filteredValues.get( key ).toString();
+            key = model.getPrimaryKey(value);
+            label = model.getLabelFor(value);
             
             json.put(getDataSqueezer().squeeze(key), label );
         }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DefaultAutocompleteModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DefaultAutocompleteModel.java?view=diff&rev=486859&r1=486858&r2=486859
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DefaultAutocompleteModel.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DefaultAutocompleteModel.java Wed Dec 13 14:12:04 2006
@@ -13,9 +13,8 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.form;
 
-import java.util.HashMap;
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.hivemind.ApplicationRuntimeException;
@@ -74,12 +73,12 @@
         _labelExpression = labelField;
     }
     
-    /** 
+    /**
      * {@inheritDoc}
      */
-    public Map filterValues(String match)
+    public List getValues(String match)
     {
-        Map ret = new HashMap();
+        List ret = new ArrayList();
         
         if (match == null)
             return ret;
@@ -92,7 +91,7 @@
             String label = getLabelFor(value);
             
             if (label.toLowerCase().indexOf(filter) > -1)
-                ret.put(getPrimaryKey(value), label);
+                ret.add(value);
         }
         
         return ret;

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/IAutocompleteModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/IAutocompleteModel.java?view=diff&rev=486859&r1=486858&r2=486859
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/IAutocompleteModel.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/IAutocompleteModel.java Wed Dec 13 14:12:04 2006
@@ -13,7 +13,7 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.form;
 
-import java.util.Map;
+import java.util.List;
 
 import org.apache.tapestry.components.IPrimaryKeyConverter;
 import org.apache.tapestry.form.IPropertySelectionModel;
@@ -46,16 +46,14 @@
     String getLabelFor(Object value);
     
     /**
-     * Used to filter a potentially large list of objects.
+     * Expected to return a list of all possible values, filtering out values that
+     * match the specified String in the <strong>label</strong> representation of the value.
      * 
-     * @param match
-     *          The given partial string that should be matched against object
-     *          <i>labels</i> in the model being managed.
-     * @return
-     *        A {@link Map} containing key/value pairs matching the given input label string. 
-     *        The map should contain a key compatible with {@link IPrimaryKeyConverter#getPrimaryKey(Object)} 
-     *        and value matching {@link #getLabelFor(Object)}.
+     * @param filter 
+     *          The string to use to filter the values based on the label representation of objects.
+     * 
+     * @return A filtered list of values. Expected to be in the full object form such that
+     *      {@link IPrimaryKeyConverter#getPrimaryKey(Object)} can be called on each returned value.
      */
-    Map filterValues(String match);
-    
+    List getValues(String filter);
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/DefaultAutocompleteModelTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/DefaultAutocompleteModelTest.java?view=diff&rev=486859&r1=486858&r2=486859
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/DefaultAutocompleteModelTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/DefaultAutocompleteModelTest.java Wed Dec 13 14:12:04 2006
@@ -15,7 +15,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.tapestry.BaseComponentTestCase;
 import org.testng.annotations.Test;
@@ -64,18 +63,17 @@
         
         IAutocompleteModel model = new DefaultAutocompleteModel(values, "id", "label");
         
-        Map results = model.filterValues("sim");
+        List results = model.getValues("sim");
         
         assert results != null;
         assert results.size() == 3;
         
-        assert results.containsKey(2);
-        assert results.get(2).equals(s2.getLabel());
+        assert results.contains(s2);
         
-        results = model.filterValues("simple 1");
+        results = model.getValues("simple 1");
         
         assert results.size() == 1;
-        assert results.get(1) == s1.getLabel();
+        assert results.get(0) == s1;
     }
     
     public void test_Filtering_Null()
@@ -92,7 +90,7 @@
         
         IAutocompleteModel model = new DefaultAutocompleteModel(values, "id", "label");
         
-        Map results = model.filterValues(null);
+        List results = model.getValues(null);
         
         assert results != null;
         assert results.size() == 0;