Author: pete
Date: Fri May  6 07:04:30 2011
New Revision: 1100107

URL: http://svn.apache.org/viewvc?rev=1100107&view=rev
Log:
WICKET-3671 eliminate repeater index on resource path for localizer lookup

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java?rev=1100107&r1=1100106&r2=1100107&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
 Fri May  6 07:04:30 2011
@@ -27,6 +27,8 @@ import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.WebComponent;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.list.Loop;
+import org.apache.wicket.markup.repeater.AbstractRepeater;
 import org.apache.wicket.resource.IPropertiesFactory;
 import org.apache.wicket.resource.Properties;
 import org.apache.wicket.util.resource.locator.ResourceNameIterator;
@@ -225,7 +227,7 @@ public class ComponentStringResourceLoad
 
                // The key prefix is equal to the component path relative to the
                // current component on the top of the stack.
-               String prefix = 
Strings.replaceAll(component.getPageRelativePath(), ":", ".").toString();
+               String prefix = getResourcePath(component);
 
                // The reason why we need to create that stack is because we 
need to
                // walk it downwards starting with Page down to the Component
@@ -275,6 +277,40 @@ public class ComponentStringResourceLoad
        }
 
        /**
+        * get path for resource lookup
+        * 
+        * @param component
+        * @return path
+        */
+       protected String getResourcePath(final Component component)
+       {
+               Component current = component;
+
+               if (current == null)
+               {
+                       throw new NullPointerException("component must not be 
null");
+               }
+
+               final StringBuilder buffer = new StringBuilder();
+               
+               while (current.getParent() != null)
+               {
+                       final boolean skip = current.getParent() instanceof 
AbstractRepeater;
+
+                       if (skip == false)
+                       {
+                               if (buffer.length() > 0)
+                               {
+                                       buffer.insert(0, '.');
+                               }
+                               buffer.insert(0, current.getId());
+                       }
+                       current = current.getParent();
+               }
+               return buffer.toString();
+       }
+       
+       /**
         * Traverse the component hierarchy up to the Page and add each 
component class to the list
         * (stack) returned
         * 


Reply via email to