Author: jdonnerstag
Date: Sat Oct  3 12:20:59 2009
New Revision: 821302

URL: http://svn.apache.org/viewvc?rev=821302&view=rev
Log:
fixed: AjaxLazyLoadPanel do not respect especific projects components 
configuration
Issue: WICKET-2468

Modified:
    
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
    
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/AjaxLazyLoadPanelTesterTest.java

Modified: 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java?rev=821302&r1=821301&r2=821302&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
 Sat Oct  3 12:20:59 2009
@@ -28,8 +28,8 @@
 
 /**
  * A panel where you can lazy load another panel. This can be used if you have 
a panel/component
- * that is pretty heavy in creation and you first want to show the user the 
page and the replace the
- * panel when it is ready.
+ * that is pretty heavy in creation and you first want to show the user the 
page and then replace
+ * the panel when it is ready.
  * 
  * @author jcompagner
  * 
@@ -37,6 +37,8 @@
  */
 public abstract class AjaxLazyLoadPanel extends Panel
 {
+       private static final String LAZY_LOAD_COMPONENT_ID = "content";
+
        private static final long serialVersionUID = 1L;
 
        // state,
@@ -46,20 +48,25 @@
        private byte state = 0;
 
        /**
+        * Constructor
+        * 
         * @param id
         */
-       public AjaxLazyLoadPanel(String id)
+       public AjaxLazyLoadPanel(final String id)
        {
                this(id, null);
        }
 
        /**
+        * Constructor
+        * 
         * @param id
         * @param model
         */
-       public AjaxLazyLoadPanel(String id, IModel<?> model)
+       public AjaxLazyLoadPanel(final String id, final IModel<?> model)
        {
                super(id, model);
+
                setOutputMarkupId(true);
 
                add(new AbstractDefaultAjaxBehavior()
@@ -69,8 +76,8 @@
                        @Override
                        protected void respond(AjaxRequestTarget target)
                        {
-                               Component component = 
getLazyLoadComponent("content");
-                               
AjaxLazyLoadPanel.this.replace(component.setRenderBodyOnly(true));
+                               Component component = 
getLazyLoadComponent(LAZY_LOAD_COMPONENT_ID);
+                               AjaxLazyLoadPanel.this.replace(component);
                                target.addComponent(AjaxLazyLoadPanel.this);
                                setState((byte)2);
                        }
@@ -90,18 +97,24 @@
                });
        }
 
+       /**
+        * @see org.apache.wicket.Component#onBeforeRender()
+        */
        @Override
        protected void onBeforeRender()
        {
                if (state == 0)
                {
-                       Component loadingComponent = 
getLoadingComponent("content");
-                       add(loadingComponent.setRenderBodyOnly(true));
+                       add(getLoadingComponent(LAZY_LOAD_COMPONENT_ID));
                        setState((byte)1);
                }
                super.onBeforeRender();
        }
 
+       /**
+        * 
+        * @param state
+        */
        private void setState(byte state)
        {
                if (this.state != state)
@@ -112,9 +125,11 @@
        }
 
        /**
+        * 
         * @param markupId
         *            The components markupid.
-        * @return The component that must be lazy created.
+        * @return The component that must be lazy created. You may call 
setRenderBodyOnly(true) on this
+        *         component if you need the body only.
         */
        public abstract Component getLazyLoadComponent(String markupId);
 
@@ -123,28 +138,38 @@
         *            The components markupid.
         * @return The component to show while the real component is being 
created.
         */
-       public Component getLoadingComponent(String markupId)
+       public Component getLoadingComponent(final String markupId)
        {
                return new Label(markupId, "<img src=\"" +
                        
RequestCycle.get().urlFor(AbstractDefaultAjaxBehavior.INDICATOR) + 
"\"/>").setEscapeModelStrings(false);
        }
 
+       /**
+        * 
+        */
        private final class StateChange extends Change
        {
                private static final long serialVersionUID = 1L;
 
                private final byte state;
 
+               /**
+                * Construct.
+                * 
+                * @param state
+                */
                public StateChange(byte state)
                {
                        this.state = state;
                }
 
+               /**
+                * @see org.apache.wicket.version.undo.Change#undo()
+                */
                @Override
                public void undo()
                {
                        AjaxLazyLoadPanel.this.state = state;
                }
-
        }
 }

Modified: 
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/AjaxLazyLoadPanelTesterTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/AjaxLazyLoadPanelTesterTest.java?rev=821302&r1=821301&r2=821302&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/AjaxLazyLoadPanelTesterTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/AjaxLazyLoadPanelTesterTest.java
 Sat Oct  3 12:20:59 2009
@@ -59,7 +59,7 @@
                                        @Override
                                        public Component 
getLazyLoadComponent(String markupId)
                                        {
-                                               return new Label(markupId, 
"lazy panel test");
+                                               return new Label(markupId, 
"lazy panel test").setRenderBodyOnly(true);
                                        }
                                };
                                ajaxLazyLoadPanel = ajaxLazyLoadPanel1;
@@ -73,6 +73,7 @@
                AjaxLazyLoadPanelTester.executeAjaxLazyLoadPanel(wt, 
dummyPanelPage);
                wt.debugComponentTrees();
                wt.assertLabel("panel:content", "lazy panel test");
+               String doc = wt.getServletResponse().getDocument();
+               assertNotNull(doc);
        }
-
 }


Reply via email to