Author: ehillenius
Date: Tue Jan  9 15:04:20 2007
New Revision: 494642

URL: http://svn.apache.org/viewvc?view=rev&rev=494642
Log:
fix to let coding strat take page map into account

Modified:
    
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java

Modified: 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java?view=diff&rev=494642&r1=494641&r2=494642
==============================================================================
--- 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
 Tue Jan  9 15:04:20 2007
@@ -77,7 +77,7 @@
                final PageParameters parameters = new 
PageParameters(decodeParameters(parametersFragment,
                                requestParameters.getParameters()));
                String pageMapName = 
(String)parameters.remove(WebRequestCodingStrategy.PAGEMAP);
-               if(requestParameters.getPageMapName() == null)
+               if (requestParameters.getPageMapName() == null)
                {
                        requestParameters.setPageMapName(pageMapName);
                }
@@ -85,38 +85,41 @@
                {
                        pageMapName = requestParameters.getPageMapName();
                }
-               
+
                final BookmarkablePageRequestTarget target;
-               
-               final String bookmarkableInterfaceListener = (String) 
parameters.remove(
-                               
WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME);
-               
+
+               final String bookmarkableInterfaceListener = (String)parameters
+                               
.remove(WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME);
+
                // Do the parameters contain component path and listener 
interface?
-               if (bookmarkableInterfaceListener != null) {
+               if (bookmarkableInterfaceListener != null)
+               {
                        // TODO check if the page already exists and reuse that?
-                       
-                       
-                       // try to parse component path and listener interface 
-                       final String[] pathComponents = 
Strings.split(bookmarkableInterfaceListener, Component.PATH_SEPARATOR);
+
+                       // try to parse component path and listener interface
+                       final String[] pathComponents = 
Strings.split(bookmarkableInterfaceListener,
+                                       Component.PATH_SEPARATOR);
                        // There must be at least 4 path components
                        if (pathComponents.length < 4)
                        {
                                throw new WicketRuntimeException("Internal 
error parsing "
-                                               + 
WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME + " = " + 
bookmarkableInterfaceListener);
+                                               + 
WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME + " = "
+                                               + 
bookmarkableInterfaceListener);
                        }
                        final String interfaceName = 
pathComponents[pathComponents.length - 1];
-                       final String componentPath = 
bookmarkableInterfaceListener.substring(1, 
+                       int start = (pageMapName != null) ? 
pageMapName.length() + 1 : 1;
+                       final String componentPath = 
bookmarkableInterfaceListener.substring(start,
                                        bookmarkableInterfaceListener.length() 
- interfaceName.length() - 2);
-                       
-                       target = new 
BookmarkableListenerInterfaceRequestTarget(pageMapName, bookmarkablePageClass, 
parameters,
-                                       componentPath, interfaceName);
-               }                                                               
                
-               else 
+
+                       target = new 
BookmarkableListenerInterfaceRequestTarget(pageMapName,
+                                       bookmarkablePageClass, parameters, 
componentPath, interfaceName);
+               }
+               else
                {
-                       target = new BookmarkablePageRequestTarget(pageMapName,
-                                       bookmarkablePageClass, parameters);     
+                       target = new BookmarkablePageRequestTarget(pageMapName, 
bookmarkablePageClass,
+                                       parameters);
                }
-                
+
                return target;
        }
 


Reply via email to