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 2008/01/18 23:40:24 UTC
svn commit: r613301 - in /tapestry/tapestry4/trunk:
tapestry-annotations/src/test/org/apache/tapestry/annotations/
tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/localization/
tapestry-framework/src/java/org/apache/tapestry/internal...
Author: jkuhnert
Date: Fri Jan 18 14:40:21 2008
New Revision: 613301
URL: http://svn.apache.org/viewvc?rev=613301&view=rev
Log:
Fixes TAPESTRY-1233. Bug in ComponentEventProperty was causing async parameter value to get lost.
Modified:
tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java
tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/localization/Localization.java
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-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java?rev=613301&r1=613300&r2=613301&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java Fri Jan 18 14:40:21 2008
@@ -169,6 +169,9 @@
@EventListener(events = { "onClick" }, targets = { "email" }, submitForm = "notExisting")
public void brokenFormListener() { }
+ @EventListener(targets = "foo", events = "onchange", async = false)
+ public void submitForm() {}
+
@InitialValue("literal:5")
public abstract int getDefaultPageSize();
Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java?rev=613301&r1=613300&r2=613301&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java Fri Jan 18 14:40:21 2008
@@ -39,7 +39,7 @@
EnhancementOperation op = newOp();
IComponentSpecification spec = new ComponentSpecification();
Resource resource = newResource(AnnotatedPage.class);
-
+
EventListenerAnnotationWorker worker = new EventListenerAnnotationWorker();
replay();
@@ -137,5 +137,34 @@
verify();
}
-
+
+
+ public void test_Disable_Aysnc_Event_Connection()
+ {
+ EnhancementOperation op = newOp();
+ IComponentSpecification spec = new ComponentSpecification();
+ Resource resource = newResource(AnnotatedPage.class);
+
+ EventListenerAnnotationWorker worker = new EventListenerAnnotationWorker();
+
+ replay();
+
+ Method m = findMethod(AnnotatedPage.class, "submitForm");
+
+ assertTrue(worker.canEnhance(m));
+ worker.peformEnhancement(op, spec, m, resource);
+
+ verify();
+
+ ComponentEventProperty property = spec.getComponentEvents("foo");
+ assertNotNull(property);
+
+ List listeners = property.getEventListeners("onchange");
+ assertNotNull(listeners);
+ assertEquals(1, listeners.size());
+
+ EventBoundListener listener = (EventBoundListener) listeners.get(0);
+ assert !listener.shouldFocusForm();
+ assert !listener.isAsync();
+ }
}
Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/localization/Localization.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/localization/Localization.java?rev=613301&r1=613300&r2=613301&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/localization/Localization.java (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/localization/Localization.java Fri Jan 18 14:40:21 2008
@@ -15,6 +15,7 @@
package org.apache.tapestry.workbench.localization;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.annotations.EventListener;
import org.apache.tapestry.form.IPropertySelectionModel;
import org.apache.tapestry.html.BasePage;
@@ -31,6 +32,12 @@
private IPropertySelectionModel localeModel;
public void formSubmit(IRequestCycle cycle)
+ {
+ cycle.activate("localization/Change");
+ }
+
+ @EventListener(targets = "inputLocale", events = "onchange", async = false)
+ public void onChange(IRequestCycle cycle)
{
cycle.activate("localization/Change");
}
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=613301&r1=613300&r2=613301&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 Fri Jan 18 14:40:21 2008
@@ -68,7 +68,7 @@
public void addListener(String[] events, String methodName,
String formId, boolean validateForm, boolean async, boolean focus)
{
- addListener(events, methodName, formId, validateForm, async, focus, false);
+ addListener(events, methodName, formId, validateForm, async, focus, true);
}
/**
@@ -88,9 +88,18 @@
{
for (int i=0; i < events.length; i++) {
if (formId != null && formId.length() > 0)
- addFormEventListener(events[i], methodName, formId, validateForm, async, focus);
- else
- addEventListener(events[i], methodName, autoSubmit);
+ {
+ addFormEventListener(events[i], methodName, formId, validateForm, async, focus, autoSubmit);
+ } else
+ {
+ EventBoundListener listener = new EventBoundListener(methodName, formId, validateForm,
+ _componentId, async, focus, autoSubmit);
+ List listeners = getEventListeners(events[i]);
+ if (!listeners.contains(listener))
+ {
+ listeners.add(listener);
+ }
+ }
}
}
@@ -102,9 +111,10 @@
* @param validateForm
*/
public void addFormEventListener(String event, String methodName,
- String formId, boolean validateForm, boolean async, boolean focus)
+ String formId, boolean validateForm, boolean async, boolean focus, boolean autoSubmit)
{
- EventBoundListener listener = new EventBoundListener(methodName, formId, validateForm, _componentId, async, focus);
+ EventBoundListener listener = new EventBoundListener(methodName, formId, validateForm, _componentId,
+ async, focus, autoSubmit);
List listeners = getFormEventListeners(event);
if (!listeners.contains(listener))
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=613301&r1=613300&r2=613301&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 Fri Jan 18 14:40:21 2008
@@ -52,7 +52,21 @@
assertEquals("doFoo", listener.getMethodName());
assert listener.isAutoSubmit();
}
-
+
+ public void test_Disabled_Async_Property()
+ {
+ String[] events = { "onchange" };
+ ComponentEventProperty p = new ComponentEventProperty("compid");
+
+ p.addListener(events, "submitForm", null, false, false, false, true);
+
+ List listeners = p.getEventListeners("onchange");
+ assertEquals(1, listeners.size());
+
+ EventBoundListener l = (EventBoundListener) listeners.get(0);
+ assert !l.isAsync();
+ }
+
public void test_Add_Form_Event_Listener()
{
String[] events = {"onFoo"};