You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/06/05 06:59:23 UTC
svn commit: r544380 - in /tapestry/tapestry4/trunk/tapestry-framework/src:
java/org/apache/tapestry/form/FormSupportImpl.java
java/org/apache/tapestry/scriptaculous/Suggest.java
test/org/apache/tapestry/scriptaculous/TestSuggest.java
Author: jkuhnert
Date: Mon Jun 4 21:59:21 2007
New Revision: 544380
URL: http://svn.apache.org/viewvc?view=rev&rev=544380
Log:
Fixes TAPESTRY-1535. Suggest wasn't working properly in a loop. Added logic to handle this scenario as well as the usual pain involved with the FieldLabel logic.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/scriptaculous/Suggest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/scriptaculous/TestSuggest.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java?view=diff&rev=544380&r1=544379&r2=544380
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java Mon Jun 4 21:59:21 2007
@@ -781,8 +781,7 @@
String key = field.getExtendedId();
if (_prerenderMap.containsKey(key))
- throw new ApplicationRuntimeException(FormMessages.fieldAlreadyPrerendered(field),
- field, location, null);
+ throw new ApplicationRuntimeException(FormMessages.fieldAlreadyPrerendered(field), field, location, null);
NestedMarkupWriter nested = writer.getNestedWriter();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/scriptaculous/Suggest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/scriptaculous/Suggest.java?view=diff&rev=544380&r1=544379&r2=544380
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/scriptaculous/Suggest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/scriptaculous/Suggest.java Mon Jun 4 21:59:21 2007
@@ -144,12 +144,20 @@
// render search triggered response instead of normal render if
// listener was invoked
- if (!cycle.isRewinding()
+ IForm form = TapestryUtils.getForm(cycle, this);
+ setForm(form);
+
+ if (form.wasPrerendered(writer, this))
+ return;
+
+ if (!form.isRewinding() && !cycle.isRewinding()
&& getResponse().isDynamic() && isSearchTriggered()) {
- IForm form = TapestryUtils.getForm(cycle, this);
+ setName(form);
+
+ // do nothing if it wasn't for this instance - such as in a loop
- if (form.wasPrerendered(writer, this))
+ if (cycle.getParameter(getClientId()) == null)
return;
renderList(writer, cycle);
@@ -157,6 +165,7 @@
}
// defer to super if normal render
+
super.renderComponent(writer, cycle);
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/scriptaculous/TestSuggest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/scriptaculous/TestSuggest.java?view=diff&rev=544380&r1=544379&r2=544380
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/scriptaculous/TestSuggest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/scriptaculous/TestSuggest.java Mon Jun 4 21:59:21 2007
@@ -61,9 +61,9 @@
expect(cycle.isRewinding()).andReturn(false).anyTimes();
expect(resp.isDynamic()).andReturn(false);
- trainGetAttribute(cycle, TapestryUtils.FORM_ATTRIBUTE, form);
+ expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form).anyTimes();
- expect(form.wasPrerendered(writer, comp)).andReturn(false);
+ expect(form.wasPrerendered(writer, comp)).andReturn(false).anyTimes();
expect(form.getDelegate()).andReturn(delegate).anyTimes();
expect(form.getElementId(comp)).andReturn("suggest");
expect(form.isRewinding()).andReturn(false).anyTimes();
@@ -133,9 +133,9 @@
expect(cycle.isRewinding()).andReturn(false).anyTimes();
expect(resp.isDynamic()).andReturn(false);
- trainGetAttribute(cycle, TapestryUtils.FORM_ATTRIBUTE, form);
+ expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form).anyTimes();
- expect(form.wasPrerendered(writer, comp)).andReturn(false);
+ expect(form.wasPrerendered(writer, comp)).andReturn(false).anyTimes();
expect(form.getDelegate()).andReturn(delegate).anyTimes();
expect(form.getElementId(comp)).andReturn("suggest");
expect(form.isRewinding()).andReturn(false).anyTimes();
@@ -203,7 +203,7 @@
expect(cycle.isRewinding()).andReturn(false).anyTimes();
expect(resp.isDynamic()).andReturn(false);
- trainGetAttribute(cycle, TapestryUtils.FORM_ATTRIBUTE, form);
+ expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form).anyTimes();
expect(translator.format(comp, null)).andReturn("r2d2");
translator.renderContributions(comp, writer, cycle);
@@ -258,12 +258,15 @@
"listSource", source,
"valueConverter", converter,
"listItemRenderer", DefaultListItemRenderer.SHARED_INSTANCE);
-
+
+ expect(form.isRewinding()).andReturn(false);
expect(cycle.isRewinding()).andReturn(false).anyTimes();
expect(resp.isDynamic()).andReturn(true);
trainGetAttribute(cycle, TapestryUtils.FORM_ATTRIBUTE, form);
expect(form.wasPrerendered(writer, comp)).andReturn(false);
+ expect(form.getElementId(comp)).andReturn("suggest");
+ expect(cycle.getParameter("suggest")).andReturn("b");
expect(converter.coerceValue(source, Iterator.class)).andReturn(source.iterator());
replay();