Author: ivaynberg Date: Tue Jul 13 01:21:33 2010 New Revision: 963541 URL: http://svn.apache.org/viewvc?rev=963541&view=rev Log: WICKET-2943 introduce Component#onInitialize()
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Component.java wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/MarkupContainer.java wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Page.java wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Component.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Component.java?rev=963541&r1=963540&r2=963541&view=diff ============================================================================== --- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Component.java (original) +++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Component.java Tue Jul 13 01:21:33 2010 @@ -2218,13 +2218,17 @@ public abstract class Component implemen * be called on the page. On AJAX request, this method must be called on updated component. * </p> * + * TODO this method is not part of public api, so rename to internalPrepareForRender + * * @param setRenderingFlag * Whether to set the rendering flag. This must be true if the page is about to be * rendered. However, there are usecases to call this method without an immediate * render (e.g. on stateless listner request target to build the component * hierarchy), in that case setRenderingFlag should be false + * + * */ - public final void prepareForRender(boolean setRenderingFlag) + public void prepareForRender(boolean setRenderingFlag) { beforeRender(); Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/MarkupContainer.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=963541&r1=963540&r2=963541&view=diff ============================================================================== --- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/MarkupContainer.java (original) +++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/MarkupContainer.java Tue Jul 13 01:21:33 2010 @@ -1971,4 +1971,5 @@ public abstract class MarkupContainer ex } } + } Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Page.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Page.java?rev=963541&r1=963540&r2=963541&view=diff ============================================================================== --- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Page.java (original) +++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Page.java Tue Jul 13 01:21:33 2010 @@ -1510,18 +1510,24 @@ public abstract class Page extends Marku return null; } - /** - * - * @see org.apache.wicket.Component#onBeforeRender() - */ @Override - protected void onBeforeRender() + public void prepareForRender(boolean setRenderingFlag) { if (!getFlag(FLAG_INITIALIZED)) { // initialize the page if not yet initialized initialize(); } + super.prepareForRender(setRenderingFlag); + } + + /** + * + * @see org.apache.wicket.Component#onBeforeRender() + */ + @Override + protected void onBeforeRender() + { super.onBeforeRender(); // If any of the components on page is not stateless, we need to bind the session // before we start rendering components, as then jsessionid won't be appended Modified: wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java?rev=963541&r1=963540&r2=963541&view=diff ============================================================================== --- wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java (original) +++ wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java Tue Jul 13 01:21:33 2010 @@ -16,8 +16,12 @@ */ package org.apache.wicket; +import org.apache.wicket.markup.IMarkupResourceStreamProvider; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.util.resource.IResourceStream; +import org.apache.wicket.util.resource.StringResourceStream; +import org.apache.wicket.util.tester.WicketTester; /** * Tests {...@link Component#onInitialize()} contract @@ -96,11 +100,23 @@ public class ComponentInitializationTest assertEquals(1, page.getCount()); } + public void testPageInitialization() + { + WicketTester tester = new WicketTester(); + tester.startPage(TestPage.class); + TestPage page = (TestPage)tester.getLastRenderedPage(); - private static class TestPage extends WebPage + assertEquals(1, page.getCount()); + } + + public static class TestPage extends WebPage implements IMarkupResourceStreamProvider { private int count = 0; + public TestPage() + { + } + @Override protected void onInitialize() { @@ -111,6 +127,12 @@ public class ComponentInitializationTest { return count; } + + public IResourceStream getMarkupResourceStream(MarkupContainer container, + Class<?> containerClass) + { + return new StringResourceStream("<html></html>"); + } } private static class TestComponent extends WebMarkupContainer