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;
}