Author: ehillenius
Date: Tue Jun 12 10:36:36 2007
New Revision: 546572

URL: http://svn.apache.org/viewvc?view=rev&rev=546572
Log:
put request parameters reference back in again. This change wasn't in anyone's 
way, and people on the list expressed that this was helping them. It makes 
sense to have a reference to the request parameters the request was resolved 
with in the request cycle. Unless someone can point out an actual and urgent 
problem with it, in which case we can remove it again.

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageParameters.java
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageParameters.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageParameters.java?view=diff&rev=546572&r1=546571&r2=546572
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageParameters.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageParameters.java
 Tue Jun 12 10:36:36 2007
@@ -38,18 +38,21 @@
  */
 public final class PageParameters extends ValueMap
 {
-       private static final long serialVersionUID = 1L;
-
        /**
         * Null value for page parameters
         */
        public static final PageParameters NULL = new PageParameters();
 
+       private static final long serialVersionUID = 1L;
+
        /**
         * Constructor
         */
        public PageParameters()
        {
+               super();
+
+               setOnRequestCycle();
        }
 
        /**
@@ -62,6 +65,8 @@
        public PageParameters(final Map parameterMap)
        {
                super(parameterMap);
+
+               setOnRequestCycle();
        }
 
        /**
@@ -96,6 +101,8 @@
        {
                super();
 
+               setOnRequestCycle();
+
                // We can not use ValueMaps constructor as it uses
                // VariableAssignmentParser which is more suitable for markup
                // attributes, rather than URL parameters. URL param keys for
@@ -130,6 +137,19 @@
 
                                put(key, value);
                        }
+               }
+       }
+
+       /**
+        * Set this on request cycle. Request will decide whether to keep it as 
a
+        * reference or not.
+        */
+       private void setOnRequestCycle()
+       {
+               RequestCycle cycle = RequestCycle.get();
+               if (cycle != null)
+               {
+                       cycle.setPageParameters(this);
                }
        }
 }

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?view=diff&rev=546572&r1=546571&r2=546572
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
 Tue Jun 12 10:36:36 2007
@@ -243,6 +243,12 @@
        /** holds the stack of set [EMAIL PROTECTED] IRequestTarget}, the last 
set op top. */
        private transient final ArrayListStack requestTargets = new 
ArrayListStack(3);
 
+       /**
+        * Any page parameters. Only set when the request is resolving and the
+        * parameters are passed into a page.
+        */
+       private PageParameters pageParameters;
+
        /** The session object. */
        private Session session;
 
@@ -322,6 +328,18 @@
        }
 
        /**
+        * Any set page parameters. Typically only available when a request to a
+        * bookmarkable page with a [EMAIL PROTECTED] 
Page#Page(PageParameters)} constructor
+        * was made.
+        * 
+        * @return the page parameters or null
+        */
+       public final PageParameters getPageParameters()
+       {
+               return this.pageParameters;
+       }
+
+       /**
         * Gets the processor for delegated request cycle handling.
         * 
         * @return the processor for delegated request cycle handling
@@ -1204,6 +1222,21 @@
                // Clear ThreadLocal reference; makes sense as this object 
should not be
                // reused
                current.set(null);
+       }
+
+       /**
+        * Possibly set the page parameters. Only set when the request is 
resolving
+        * and the parameters are passed into a page.
+        * 
+        * @param parameters
+        *            the parameters to set
+        */
+       final void setPageParameters(PageParameters parameters)
+       {
+               if (currentStep == RESOLVE_TARGET)
+               {
+                       this.pageParameters = parameters;
+               }
        }
 
        /**


Reply via email to