You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by ms...@apache.org on 2008/03/30 18:52:40 UTC
svn commit: r642771 - in /tapestry/tapestry4/trunk/tapestry-framework/src:
java/org/apache/tapestry/internal/event/ComponentEventProperty.java
test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java
Author: mschulte
Date: Sun Mar 30 09:52:33 2008
New Revision: 642771
URL: http://svn.apache.org/viewvc?rev=642771&view=rev
Log:
fixes TAPESTRY-2003: EventListener's "autoSubmit" parameter does not work.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java?rev=642771&r1=642770&r2=642771&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java Sun Mar 30 09:52:33 2008
@@ -137,6 +137,12 @@
listeners.add(listener);
}
+ /**
+ * Moves all of the non-form-submitting events with autoSubmit=true in {@link #_eventMap} over
+ * to the list of form-submitting events {@link #_formEventMap}.
+ * This is called when the targeted component is an {@link org.apache.tapestry.form.IFormComponent}
+ * by the {@link org.apache.tapestry.pageload.EventConnectionVisitor}.
+ * */
public void connectAutoSubmitEvents(String formIdPath)
{
Iterator it = getEvents().iterator();
@@ -151,6 +157,8 @@
while (lit.hasNext())
{
EventBoundListener listener = (EventBoundListener) lit.next();
+ if ( !listener.isAutoSubmit() )
+ continue;
listener.setFormId(formIdPath);
lit.remove();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java?rev=642771&r1=642770&r2=642771&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java Sun Mar 30 09:52:33 2008
@@ -94,6 +94,30 @@
assertEquals("doFoo", listener.getMethodName());
assert listener.isAutoSubmit();
}
+
+ /**
+ * tests regression of TAPESTRY-2003
+ * */
+ public void test_Add_Form_Event_Listener_no_autoSubmit()
+ {
+ String[] events = {"onFoo"};
+ ComponentEventProperty prop = new ComponentEventProperty("compid");
+
+ prop.addListener(events, "doFoo", "", false, true, false, false);
+ prop.connectAutoSubmitEvents("fooForm");
+
+ assertEquals("compid", prop.getComponentId());
+ assertEquals(1, prop.getEvents().size());
+ assertEquals(0, prop.getFormEvents().size());
+
+ List listeners = prop.getEventListeners("onFoo");
+ assertEquals(1, listeners.size());
+
+ EventBoundListener listener = (EventBoundListener)listeners.get(0);
+
+ assertEquals("doFoo", listener.getMethodName());
+ assert ! listener.isAutoSubmit();
+ }
public void test_Add_Multiple_Event_Listener()
{