Author: jkuhnert
Date: Sun Aug  5 13:24:15 2007
New Revision: 562950

URL: http://svn.apache.org/viewvc?view=rev&rev=562950
Log:
Fixes TAPESTRY-1687.  Encoding of value now skips squeezing if value is an 
empty string or null.

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

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=562950&r1=562949&r2=562950
==============================================================================
--- 
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
 Sun Aug  5 13:24:15 2007
@@ -55,7 +55,7 @@
             throw Tapestry.createRequiredParameterException(this, "model");
         
         Object value = getValue();
-        Object key = value != null ? model.getPrimaryKey(value) : null;        
        
+        Object key = value != null && !"".equals(value.toString()) ? 
model.getPrimaryKey(value) : null;
         
         renderDelegatePrefix(writer, cycle);
         
@@ -83,10 +83,13 @@
             for (int i=0; i<list.size(); i++) 
             {
                 Object optionKey = model.getPrimaryKey(list.get(i));
+
                 writer.begin("option");
                 writer.attribute("value", 
getDataSqueezer().squeeze(optionKey));
+
                 if (optionKey!=null && optionKey.equals(key))
                     writer.attribute("selected", "selected");
+                
                 writer.print(model.getLabelFor(list.get(i)));
                 writer.end();
             }
@@ -104,6 +107,7 @@
             ILink link = getDirectService().getLink(true, new 
DirectServiceParameter(this));
             json.put("dataUrl", link.getURL() + "&filter=%{searchString}");
         }
+        
         json.put("mode", isLocal() ? MODE_LOCAL : MODE_REMOTE);
         json.put("widgetId", getName());
         json.put("name", getName());
@@ -113,7 +117,7 @@
         json.put("forceValidOption", isForceValidOption());
         json.put("disabled", isDisabled());
         
-        json.put("value", getDataSqueezer().squeeze(key));
+        json.put("value", key != null ? getDataSqueezer().squeeze(key) : "");
         json.put("label", value != null ? model.getLabelFor(value) : "");
         
         parms.put("props", json.toString());

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=562950&r1=562949&r2=562950
==============================================================================
--- 
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
 Sun Aug  5 13:24:15 2007
@@ -13,13 +13,13 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.form;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.util.Defense;
 
+import java.util.ArrayList;
+import java.util.List;
+
 
 /**
  * Default simple implementation of [EMAIL PROTECTED] IAutocompleteModel}. 
This class relies
@@ -85,8 +85,8 @@
         
         String filter = match.trim().toLowerCase();
         
-        for (int i = 0; i < _values.size(); i++) {
-            
+        for (int i = 0; i < _values.size(); i++)
+        {    
             Object value = _values.get(i);
             String label = getLabelFor(value);
             
@@ -102,11 +102,11 @@
      */
     public String getLabelFor(Object value)
     {
-        try {
-            
+        try
+        {
             return PropertyUtils.getProperty(value, 
_labelExpression).toString();
-            
-        } catch (Exception e) {
+        } catch (Exception e)
+        {
             throw new ApplicationRuntimeException(e);
         }
     }
@@ -116,11 +116,11 @@
      */
     public Object getPrimaryKey(Object value)
     {
-        try {
-            
-            return PropertyUtils.getProperty(value, _keyExpression);
-            
-        } catch (Exception e) {
+        try
+        {
+            return PropertyUtils.getProperty(value, _keyExpression);   
+        } catch (Exception e)
+        {
             throw new ApplicationRuntimeException(e);
         }
     }
@@ -130,9 +130,10 @@
      */
     public Object getValue(Object primaryKey)
     {
-        for (int i = 0; i < _values.size(); i++) {
-            
+        for (int i = 0; i < _values.size(); i++)
+        {    
             Object value = _values.get(i);
+            
             if (getPrimaryKey(value).toString().equals(primaryKey.toString()))
                 return value;
         }


Reply via email to