Author: knopp
Date: Thu Apr  2 10:39:05 2009
New Revision: 761242

URL: http://svn.apache.org/viewvc?rev=761242&view=rev
Log: (empty)

Modified:
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageComponentProvider.java
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java?rev=761242&r1=761241&r2=761242&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
 Thu Apr  2 10:39:05 2009
@@ -376,7 +376,7 @@
 
        public void setResponsePage(Class<? extends IPage> pageClass, 
PageParameters parameters)
        {
-               PageSource source = WebApplication.get().getPageSource();
+               PageSource source = WebApplication.get().getEncoderContext();
                PageProvider provider = new PageProvider(source, pageClass);
                replaceCurrentRequestHandler(new 
RenderPageRequestHandler(provider,
                                
RenderPageRequestHandler.RedirectPolicy.ALWAYS_REDIRECT));

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?rev=761242&r1=761241&r2=761242&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 Thu Apr  2 10:39:05 2009
@@ -24,8 +24,8 @@
 import org.apache.wicket.Application;
 import org.apache.wicket.DefaultPageFactory;
 import org.apache.wicket.IPage;
-import org.apache.wicket.PageFactory;
 import org.apache.wicket.Page;
+import org.apache.wicket.PageFactory;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.RequestCycleContext;
@@ -38,7 +38,6 @@
 import org.apache.wicket.request.encoder.BufferedResponseEncoder;
 import org.apache.wicket.request.encoder.EncoderContext;
 import org.apache.wicket.request.encoder.PageInstanceEncoder;
-import org.apache.wicket.request.encoder.PageSource;
 import org.apache.wicket.request.encoder.ResourceReferenceEncoder;
 import org.apache.wicket.request.request.Request;
 import org.apache.wicket.request.response.BufferedWebResponse;
@@ -205,11 +204,6 @@
        }
 
        private PageFactory pageFactory = new DefaultPageFactory();
-
-       public PageSource getPageSource()
-       {
-               return encoderContext; 
-       }
        
        public PageFactory getPageFactory()
        {

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageComponentProvider.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageComponentProvider.java?rev=761242&r1=761241&r2=761242&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageComponentProvider.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageComponentProvider.java
 Thu Apr  2 10:39:05 2009
@@ -6,17 +6,37 @@
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.request.encoder.PageSource;
 
+/**
+ * Extension of {...@link PageProvider} that is also capable of providing a 
Component belonging to the
+ * page.
+ * 
+ * @see PageProvider
+ * 
+ * @author Matej Knopp
+ */
 public class PageComponentProvider extends PageProvider
 {
        private IComponent component;
        private String componentPath;
 
+       /**
+        * @see PageProvider#PageProvider(IPage)
+        * 
+        * @param page
+        * @param componentPath
+        */
        public PageComponentProvider(IPage page, String componentPath)
        {
                super(page);
                setComponentPath(componentPath);
        }
 
+       /**
+        * @see PageProvider#PageProvider(IPage)
+        * 
+        * @param page
+        * @param component
+        */
        public PageComponentProvider(IPage page, IComponent component)
        {
                super(page);
@@ -27,6 +47,14 @@
                this.component = component;
        }
 
+       /**
+        * @see PageProvider#PageProvider(PageSource, Class, PageParameters)
+        * 
+        * @param pageProvider
+        * @param pageClass
+        * @param pageParameters
+        * @param componentPath
+        */
        public PageComponentProvider(PageSource pageProvider, Class<? extends 
IPage> pageClass,
                        PageParameters pageParameters, String componentPath)
        {
@@ -34,12 +62,28 @@
                setComponentPath(componentPath);
        }
 
+       /**
+        * @see PageProvider#PageProvider(PageSource, Class)
+        * 
+        * @param pageProvider
+        * @param pageClass
+        * @param componentPath
+        */
        public PageComponentProvider(PageSource pageProvider, Class<? extends 
IPage> pageClass, String componentPath)
        {
                super(pageProvider, pageClass);
                setComponentPath(componentPath);
        }
 
+       /**
+        * @see PageProvider#PageProvider(PageSource, int, Class, Integer)
+        * 
+        * @param pageProvider
+        * @param pageId
+        * @param pageClass
+        * @param renderCount
+        * @param componentPath
+        */
        public PageComponentProvider(PageSource pageProvider, int pageId, 
Class<? extends IPage> pageClass,
                        Integer renderCount, String componentPath)
        {
@@ -47,6 +91,16 @@
                setComponentPath(componentPath);
        }
 
+       /**
+        * @see PageProvider#PageProvider(PageSource, int, Class, 
PageParameters, Integer)
+        * 
+        * @param pageProvider
+        * @param pageId
+        * @param pageClass
+        * @param pageParameters
+        * @param renderCount
+        * @param componentPath
+        */
        public PageComponentProvider(PageSource pageProvider, int pageId, 
Class<? extends IPage> pageClass,
                        PageParameters pageParameters, Integer renderCount, 
String componentPath)
        {
@@ -54,6 +108,14 @@
                setComponentPath(componentPath);
        }
 
+       /**
+        * @see PageProvider#PageProvider(PageSource, int, Integer)
+        * 
+        * @param pageProvider
+        * @param pageId
+        * @param renderCount
+        * @param componentPath
+        */
        public PageComponentProvider(PageSource pageProvider, int pageId, 
Integer renderCount, String componentPath)
        {
                super(pageProvider, pageId, renderCount);
@@ -65,21 +127,32 @@
        {
                return true;
        }
-       
+
+       /**
+        * Returns component on specified page with given path.
+        * 
+        * @return component
+        */
        public IComponent getComponent()
        {
                if (component == null)
                {
                        IPage page = getPageInstance();
-                       component = page.get(componentPath);                    
+                       component = page.get(componentPath);
                }
                if (component == null)
                {
-                       throw new WicketRuntimeException("Could not find 
component '" + componentPath + "' on page '" + getPageClass());
+                       throw new WicketRuntimeException("Could not find 
component '" + componentPath + "' on page '"
+                                       + getPageClass());
                }
                return component;
        }
 
+       /**
+        * Returns the component path.
+        * 
+        * @return
+        */
        public String getComponentPath()
        {
                if (componentPath != null)
@@ -91,7 +164,7 @@
                        return component.getPath();
                }
        }
-       
+
        private void setComponentPath(String componentPath)
        {
                if (componentPath == null)

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java?rev=761242&r1=761241&r2=761242&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java
 Thu Apr  2 10:39:05 2009
@@ -3,10 +3,30 @@
 import org.apache.wicket.IPage;
 import org.apache.wicket.Page;
 import org.apache.wicket.PageParameters;
+import org.apache.wicket.page.PageManager;
 import org.apache.wicket.protocol.http.PageExpiredException;
+import org.apache.wicket.request.RequestHandler;
+import org.apache.wicket.request.RequestHandlerEncoder;
 import org.apache.wicket.request.encoder.PageSource;
 import org.apache.wicket.request.encoder.StalePageException;
 
+/**
+ * Provides page instance for request handlers. Each of the constructors has 
just enough information
+ * to get existing or create new page instance. Requesting or creating page 
instance is deferred
+ * until {...@link #getPageInstance()} is called.
+ * <p>
+ * Purpose of this class is to reduce complexity of both {...@link 
RequestHandlerEncoder}s and
+ * {...@link RequestHandler}s. {...@link RequestHandlerEncoder} examines the 
URL, gathers all relevant
+ * information about the page in the URL (combination of page id, page class, 
page parameters and
+ * render count), creates {...@link PageProvider} object and creates a 
{...@link RequestHandler} instance
+ * that can use the {...@link PageProvider} to access the page.
+ * <p>
+ * Apart from simplifying {...@link RequestHandlerEncoder}s and {...@link 
RequestHandler}s
+ * {...@link PageProvider} also helps performance because creating or 
obtaining page from
+ * {...@link PageManager} is delayed until the {...@link RequestHandler} 
actually requires the page.
+ * 
+ * @author Matej Knopp
+ */
 public class PageProvider
 {
        private Integer renderCount;
@@ -16,6 +36,15 @@
        private Integer pageId;
        private PageParameters pageParameters;
 
+       /**
+        * Creates a new page provider object. Upon calling of {...@link 
#getPageInstance()} this provider
+        * will return page instance with specified id.
+        * 
+        * @param pageSource
+        * @param pageId
+        * @param renderCount
+        *            optional argument
+        */
        public PageProvider(PageSource pageSource, int pageId, Integer 
renderCount)
        {
                setPageSource(pageSource);
@@ -23,11 +52,34 @@
                this.renderCount = renderCount;
        }
 
+       /**
+        * Creates a new page provider object. Upon calling of {...@link 
#getPageInstance()} this provider
+        * will return page instance with specified id if it exists and it's 
class matches pageClass. If
+        * none of these is true new page instance will be created.
+        * 
+        * @param pageSource
+        * @param pageId
+        * @param pageClass
+        * @param renderCount
+        *            optional argument
+        */
        public PageProvider(PageSource pageSource, int pageId, Class<? extends 
IPage> pageClass, Integer renderCount)
        {
                this(pageSource, pageId, pageClass, new PageParameters(), 
renderCount);
        }
 
+       /**
+        * Creates a new page provider object. Upon calling of {...@link 
#getPageInstance()} this provider
+        * will return page instance with specified id if it exists and it's 
class matches pageClass. If
+        * none of these is true new page instance will be created.
+        * 
+        * @param pageSource
+        * @param pageId
+        * @param pageClass
+        * @param pageParameters
+        * @param renderCount
+        *            optional argument
+        */
        public PageProvider(PageSource pageSource, int pageId, Class<? extends 
IPage> pageClass,
                        PageParameters pageParameters, Integer renderCount)
        {
@@ -38,6 +90,14 @@
                this.renderCount = renderCount;
        }
 
+       /**
+        * Creates a new page provider object. Upon calling of {...@link 
#getPageInstance()} this provider
+        * will return new instance of page with specified class.
+        * 
+        * @param pageSource
+        * @param pageClass
+        * @param pageParameters
+        */
        public PageProvider(PageSource pageSource, Class<? extends IPage> 
pageClass, PageParameters pageParameters)
        {
                setPageSource(pageSource);
@@ -45,11 +105,24 @@
                setPageParameters(pageParameters);
        }
 
+       /**
+        * Creates a new page provider object. Upon calling of {...@link 
#getPageInstance()} this provider
+        * will return new instance of page with specified class.
+        * 
+        * @param pageSource
+        * @param pageClass
+        */
        public PageProvider(PageSource pageSource, Class<? extends IPage> 
pageClass)
        {
                this(pageSource, pageClass, new PageParameters());
        }
 
+       /**
+        * Creates a new page provider object. Upon calling of {...@link 
#getPageInstance()} this provider
+        * will return the given page instance.
+        * 
+        * @param page
+        */
        public PageProvider(IPage page)
        {
                if (page == null)
@@ -59,6 +132,16 @@
                this.pageInstance = page;
        }
 
+       /**
+        * Returns page instance specified by the constructor.
+        * 
+        * @return page instance
+        * @throws StalePageException
+        *             if render count has been specified in constructor and 
the render count of page
+        *             does not match the valeu
+        * @throw {...@link PageExpiredException} if the specified page could 
not have been found and the
+        *        constructor used did not provide enough information to create 
new page instance
+        */
        public IPage getPageInstance()
        {
                if (pageInstance == null)
@@ -72,6 +155,11 @@
                return pageInstance;
        }
 
+       /**
+        * Returns {...@link PageParameters} of the page specified by 
constructor.
+        * 
+        * @return page parameters
+        */
        public PageParameters getPageParameters()
        {
                if (pageParameters != null)
@@ -84,6 +172,11 @@
                }
        }
 
+       /**
+        * Returns class of the page specified by the constructor.
+        * 
+        * @return page class
+        */
        public Class<? extends IPage> getPageClass()
        {
                if (pageClass != null)
@@ -141,6 +234,10 @@
                return page;
        }
 
+       /**
+        * Detaches the page if it has been loaded (that means either {...@link 
#PageProvider(IPage)}
+        * constructor has been used or {...@link #getPageInstance()} has been 
called).
+        */
        public void detach()
        {
                if (pageInstance != null)


Reply via email to