Author: hlship
Date: Tue Dec 27 08:32:05 2005
New Revision: 359237
URL: http://svn.apache.org/viewcvs?rev=359237&view=rev
Log:
TAPESTRY-815: PageAttachListener not called on initial page load
Modified:
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/AbstractPage.java
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/IPage.java
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageLoader.java
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageSource.java
jakarta/tapestry/branches/4.0/status.xml
Modified:
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/AbstractPage.java
URL:
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/AbstractPage.java?rev=359237&r1=359236&r2=359237&view=diff
==============================================================================
---
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/AbstractPage.java
(original)
+++
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/AbstractPage.java
Tue Dec 27 08:32:05 2005
@@ -406,7 +406,7 @@
* @since 4.0
*/
- protected void firePageAttached()
+ public void firePageAttached()
{
if (_listenerList == null)
return;
Modified:
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/IPage.java
URL:
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/IPage.java?rev=359237&r1=359236&r2=359237&view=diff
==============================================================================
---
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/IPage.java
(original)
+++
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/IPage.java
Tue Dec 27 08:32:05 2005
@@ -16,6 +16,7 @@
import java.util.Locale;
+import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.tapestry.event.ChangeObserver;
import org.apache.tapestry.event.PageAttachListener;
import org.apache.tapestry.event.PageBeginRenderListener;
@@ -117,6 +118,18 @@
*/
public void attach(IEngine engine, IRequestCycle cycle);
+
+ /**
+ * Used to explicitly fire [EMAIL PROTECTED] PageAttachListener}s for this
page. This is used when a page
+ * is first loaded; The page loader attaches the newly created page
<em>instance</em> before
+ * the rest of the page and components is loaded. In order to have
meaningful event
+ * notifications when a page is first loaded (rather than pulled from the
pool), it is necessary
+ * to fire page attach listeners at the end of the load.
+ *
+ * @since 4.0
+ */
+
+ public void firePageAttached();
/**
* Invoked to render the entire page. This should only be invoked by
Modified:
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageLoader.java
URL:
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageLoader.java?rev=359237&r1=359236&r2=359237&view=diff
==============================================================================
---
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageLoader.java
(original)
+++
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageLoader.java
Tue Dec 27 08:32:05 2005
@@ -622,6 +622,12 @@
// Walk through the complete component tree to ensure that required
// parameters are bound
_verifyRequiredParametersWalker.walkComponentTree(page);
+
+ // Now that the page has been properly constructed, the page
+ // or any components on the page will have been registered as
+ // page attach listeners.
+
+ page.firePageAttached();
}
finally
{
Modified:
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageSource.java
URL:
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageSource.java?rev=359237&r1=359236&r2=359237&view=diff
==============================================================================
---
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageSource.java
(original)
+++
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/pageload/PageSource.java
Tue Dec 27 08:32:05 2005
@@ -114,7 +114,8 @@
_pageSpecificationResolver.resolve(cycle, pageName);
- // The loader is responsible for invoking attach()
+ // The loader is responsible for invoking attach(),
+ // and for firing events to PageAttachListeners
result = _loader.loadPage(
_pageSpecificationResolver.getSimplePageName(),
@@ -126,7 +127,8 @@
}
else
{
- // But for pooled pages, we are responsible
+ // But for pooled pages, we are responsible.
+ // This call will also fire events to any PageAttachListeners
result.attach(engine, cycle);
}
Modified: jakarta/tapestry/branches/4.0/status.xml
URL:
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/status.xml?rev=359237&r1=359236&r2=359237&view=diff
==============================================================================
--- jakarta/tapestry/branches/4.0/status.xml (original)
+++ jakarta/tapestry/branches/4.0/status.xml Tue Dec 27 08:32:05 2005
@@ -54,6 +54,9 @@
-->
</todo>
<changes>
+ <release version="4.0-rc-3" date="unreleased">
+ <action type="fix" dev="HLS" fixes-bug="TAPESTRY-815">PageAttachListener
not called on initial page load</action>
+ </release>
<release version="4.0-rc-2" date="unreleased">
<action type="fix" dev="HLS"
fixes-bug="TAPESTRY-789">DefaultResourceLocalizerTest is under framework/src
not framework/test</action>
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-658" due-to="Leonardo
Quijano Vincenzi">LabeledPropertySelectionModel throws NPE on null
value</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]