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
*