You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by mi...@apache.org on 2005/09/24 11:28:31 UTC
svn commit: r291266 - in /jakarta/tapestry/trunk: ./
contrib/src/java/org/apache/tapestry/contrib/table/components/
contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/
framework/src/java/org/apache/tapestry/form/ framework/src/test/...
Author: mindbridge
Date: Sat Sep 24 02:28:17 2005
New Revision: 291266
URL: http://svn.apache.org/viewcvs?rev=291266&view=rev
Log:
Replacing the 'defer' parmeter in Submit, LinkSubmit,
and ImageSubmit with a deferred listener parameter 'action'.
Modified:
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.jwc
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.jwc
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/AbstractSubmit.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/ImageSubmit.jwc
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/LinkSubmit.jwc
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/Submit.jwc
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/TestSubmit.java
jakarta/tapestry/trunk/status.xml
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.jwc?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.jwc (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.jwc Sat Sep 24 02:28:17 2005
@@ -83,7 +83,6 @@
<binding name="listener" expression="listeners.changePage"/>
<binding name="tag" expression="displayPage"/>
<binding name="selected" expression="selectedPage"/>
- <binding name="defer" expression="false"/>
</component>
<component id="linkFirst" type="LinkSubmit">
@@ -91,7 +90,6 @@
<binding name="tag" expression="1"/>
<binding name="selected" expression="selectedPage"/>
<binding name="disabled" expression="!condBack"/>
- <binding name="defer" expression="false"/>
</component>
<component id="linkBack" type="LinkSubmit">
@@ -99,7 +97,6 @@
<binding name="tag" expression="currentPage - 1"/>
<binding name="selected" expression="selectedPage"/>
<binding name="disabled" expression="!condBack"/>
- <binding name="defer" expression="false"/>
</component>
<component id="linkFwd" type="LinkSubmit">
@@ -107,7 +104,6 @@
<binding name="tag" expression="currentPage + 1"/>
<binding name="selected" expression="selectedPage"/>
<binding name="disabled" expression="!condFwd"/>
- <binding name="defer" expression="false"/>
</component>
<component id="linkLast" type="LinkSubmit">
@@ -115,7 +111,6 @@
<binding name="tag" expression="pageCount"/>
<binding name="selected" expression="selectedPage"/>
<binding name="disabled" expression="!condFwd"/>
- <binding name="defer" expression="false"/>
</component>
</component-specification>
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.jwc?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.jwc (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.jwc Sat Sep 24 02:28:17 2005
@@ -55,7 +55,6 @@
<binding name="listener" expression="listeners.columnSelected"/>
<binding name="tag" expression="tableColumn.columnName"/>
<binding name="selected" expression="selectedColumnName"/>
- <binding name="defer" expression="false"/>
</component>
<component id="imageSort" type="Image">
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/AbstractSubmit.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/AbstractSubmit.java?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/AbstractSubmit.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/AbstractSubmit.java Sat Sep 24 02:28:17 2005
@@ -55,8 +55,9 @@
setSelected(getTag());
final IActionListener listener = getListener();
+ final IActionListener action = getAction();
- if (listener == null)
+ if (listener == null && action == null)
return;
final ListenerInvoker listenerInvoker = getListenerInvoker();
@@ -75,24 +76,28 @@
}
}
- // Have a listener; notify it now, or defer for later?
-
- Runnable notify = new Runnable()
- {
- public void run()
- {
- listenerInvoker.invokeListener(listener, AbstractSubmit.this, cycle);
- }
- };
-
- if (getDefer())
+ // Invoke 'listener' now, but defer 'action' for later
+ if (listener != null)
+ listenerInvoker.invokeListener(listener, AbstractSubmit.this, cycle);
+
+ if (action != null) {
+ Runnable notify = new Runnable()
+ {
+ public void run()
+ {
+ listenerInvoker.invokeListener(action, AbstractSubmit.this, cycle);
+ }
+ };
+
form.addDeferredRunnable(notify);
- else
- notify.run();
+ }
}
/** parameter */
public abstract IActionListener getListener();
+
+ /** parameter */
+ public abstract IActionListener getAction();
/** parameter */
public abstract Object getTag();
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/ImageSubmit.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/ImageSubmit.jwc?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/ImageSubmit.jwc (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/ImageSubmit.jwc Sat Sep 24 02:28:17 2005
@@ -61,13 +61,12 @@
</description>
</parameter>
- <parameter name="defer" default-value="true">
- <description>
- If true (the default), then the listener (if any)
- is not notified until just before the form's listener,
- after all components enclosed by the Form have had
- a chance to update properties.
- </description>
+ <parameter name="action">
+ <description>
+ A listener that is notified if this component is triggered
+ just before the form's listener, after all components
+ enclosed by the Form have had a chance to update their properties.
+ </description>
</parameter>
<parameter name="parameters">
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/LinkSubmit.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/LinkSubmit.jwc?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/LinkSubmit.jwc (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/LinkSubmit.jwc Sat Sep 24 02:28:17 2005
@@ -35,10 +35,11 @@
A listener that is notified if this component is triggered.
</description>
</parameter>
- <parameter name="defer" default-value="true">
+ <parameter name="action">
<description>
- If true (the default), then any listener notification is deferred
- until just before the form's listener is invoked.
+ A listener that is notified if this component is triggered
+ just before the form's listener, after all components
+ enclosed by the Form have had a chance to update their properties.
</description>
</parameter>
<parameter name="parameters">
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/Submit.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/Submit.jwc?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/Submit.jwc (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/Submit.jwc Sat Sep 24 02:28:17 2005
@@ -55,10 +55,11 @@
A listener that is notified if this component is triggered.
</description>
</parameter>
- <parameter name="defer" default-value="true">
+ <parameter name="action">
<description>
- If true (the default), then any listener notification is deferred
- until just before the form's listener is invoked.
+ A listener that is notified if this component is triggered
+ just before the form's listener, after all components
+ enclosed by the Form have had a chance to update their properties.
</description>
</parameter>
<parameter name="parameters">
Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/TestSubmit.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/TestSubmit.java?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/TestSubmit.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/TestSubmit.java Sat Sep 24 02:28:17 2005
@@ -350,15 +350,15 @@
verifyControls();
}
- public void testTriggerWithDeferredListener()
+ public void testTriggerWithAction()
{
- IActionListener listener = newListener();
+ IActionListener action = newListener();
MockForm form = new MockForm();
IRequestCycle cycle = newCycle();
Creator creator = new Creator();
Submit submit = (Submit) creator.newInstance(Submit.class, new Object[]
- { "listener", listener, "defer", Boolean.TRUE, "listenerInvoker",
+ { "action", action, "listenerInvoker",
new ListenerInvokerTerminator() });
replayControls();
@@ -367,7 +367,7 @@
verifyControls();
- listener.actionTriggered(submit, cycle);
+ action.actionTriggered(submit, cycle);
replayControls();
@@ -376,9 +376,9 @@
verifyControls();
}
- public void testTriggerWithDeferredListenerAndSingleParameter()
+ public void testTriggerWithActionAndSingleParameter()
{
- IActionListener listener = newListener();
+ IActionListener action = newListener();
MockForm form = new MockForm();
MockControl cycleControl = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cycleControl.getMock();
@@ -386,7 +386,7 @@
Object parameter = new Object();
Creator creator = new Creator();
Submit submit = (Submit) creator.newInstance(Submit.class, new Object[]
- { "listener", listener, "defer", Boolean.TRUE, "parameters", parameter, "listenerInvoker",
+ { "action", action, "parameters", parameter, "listenerInvoker",
new ListenerInvokerTerminator() });
cycle.setListenerParameters(new Object[]
@@ -399,7 +399,7 @@
verifyControls();
- listener.actionTriggered(submit, cycle);
+ action.actionTriggered(submit, cycle);
replayControls();
@@ -408,9 +408,9 @@
verifyControls();
}
- public void testTriggerWithDeferredListenerAndMultipleParameters()
+ public void testTriggerWithDActionAndMultipleParameters()
{
- IActionListener listener = newListener();
+ IActionListener action = newListener();
MockForm form = new MockForm();
MockControl cycleControl = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cycleControl.getMock();
@@ -421,7 +421,7 @@
Creator creator = new Creator();
Submit submit = (Submit) creator.newInstance(Submit.class, new Object[]
- { "listener", listener, "defer", Boolean.TRUE, "parameters", parameters, "listenerInvoker",
+ { "action", action, "parameters", parameters, "listenerInvoker",
new ListenerInvokerTerminator() });
cycle.setListenerParameters(new Object[]
@@ -434,7 +434,37 @@
verifyControls();
+ action.actionTriggered(submit, cycle);
+
+ replayControls();
+
+ form.runDeferred();
+
+ verifyControls();
+ }
+
+ public void testTriggerWithListenerAndAction()
+ {
+ IActionListener listener = newListener();
+ IActionListener action = newListener();
+
+ MockForm form = new MockForm();
+ IRequestCycle cycle = newCycle();
+
+ Creator creator = new Creator();
+ Submit submit = (Submit) creator.newInstance(Submit.class, new Object[]
+ { "listener", listener, "action", action, "listenerInvoker",
+ new ListenerInvokerTerminator() });
+
listener.actionTriggered(submit, cycle);
+
+ replayControls();
+
+ submit.handleClick(cycle, form);
+
+ verifyControls();
+
+ action.actionTriggered(submit, cycle);
replayControls();
@@ -442,4 +472,5 @@
verifyControls();
}
+
}
Modified: jakarta/tapestry/trunk/status.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=291266&r1=291265&r2=291266&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Sat Sep 24 02:28:17 2005
@@ -72,6 +72,7 @@
<action type="fix" dev="DS" fixes-bug="TAPESTRY-488, TAPESTRY-494, TAPESTRY-513">Document DateField, NumericField, ValidatingTextField components</action>
<action type="add" dev="HLS" fixes-bug="TAPESTRY-661">Add @Meta annotation, for defining meta data</action>
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-665">The @ComponentClass annotation is not inherited by sub-classes</action>
+ <action type="fix" dev="MB" fixes-bug="TAPESTRY-666">The 'defer' parameter of Submit, LinkSubmit, and ImageSubmit with default of 'true' tends to cause user issues</action>
</release>
<release version="4.0-beta-7" date="Sep 17 2005">
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-341">Need better line-precise reporting for listener methods</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org