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;