Author: mgrigorov
Date: Thu Aug  5 19:37:15 2010
New Revision: 982746

URL: http://svn.apache.org/viewvc?rev=982746&view=rev
Log:
return LocalizedImageResource#loadStaticImage() from 1.4.x by fixing its 
ResourceReferences

this fixes the fourth image in 
http://localhost:8080/wicket-examples/images/wicket/bookmarkable/org.apache.wicket.examples.images.Home

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java?rev=982746&r1=982745&r2=982746&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
 Thu Aug  5 19:37:15 2010
@@ -23,16 +23,18 @@ import org.apache.wicket.Component;
 import org.apache.wicket.IClusterable;
 import org.apache.wicket.IResourceFactory;
 import org.apache.wicket.IResourceListener;
+import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.html.border.Border;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.cycle.RequestCycle;
 import 
org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.util.lang.Objects;
 import org.apache.wicket.util.parse.metapattern.Group;
 import org.apache.wicket.util.parse.metapattern.MetaPattern;
@@ -181,8 +183,9 @@ public final class LocalizedImageResourc
                // If we have a resource reference
                if (resourceReference != null)
                {
-                       
component.getApplication().getResourceReferenceRegistry().registerResourceReference(
-                               resourceReference);
+                       component.getApplication()
+                               .getResourceReferenceRegistry()
+                               .registerResourceReference(resourceReference);
                        // Bind the reference to the application
                }
        }
@@ -295,31 +298,31 @@ public final class LocalizedImageResourc
                // Not yet supported
 
                // Need to load image resource for this component?
-// if (resource == null && resourceReference == null)
-// {
-// // Get SRC attribute of tag
-// final CharSequence src = tag.getString("src");
-// if (src != null)
-// {
-// // Try to load static image
-// // loadStaticImage(src.toString());
-// }
-// else
-// {
-// // Get VALUE attribute of tag
-// final CharSequence value = tag.getString("value");
-// if (value != null)
-// {
-// // Try to generate an image using an image factory
-// newImage(value);
-// }
-// else
-// {
-// // Load static image using model object as the path
-// loadStaticImage(component.getDefaultModelObjectAsString());
-// }
-// }
-// }
+               if (resource == null && resourceReference == null)
+               {
+                       // Get SRC attribute of tag
+                       final CharSequence src = tag.getString("src");
+                       if (src != null)
+                       {
+                               // Try to load static image
+                               loadStaticImage(src.toString());
+                       }
+                       else
+                       {
+                               // Get VALUE attribute of tag
+                               final CharSequence value = 
tag.getString("value");
+                               if (value != null)
+                               {
+                                       // Try to generate an image using an 
image factory
+                                       newImage(value);
+                               }
+                               else
+                               {
+                                       // Load static image using model object 
as the path
+                                       
loadStaticImage(component.getDefaultModelObjectAsString());
+                               }
+                       }
+               }
 
                // Get URL for resource
                final CharSequence url;
@@ -337,8 +340,11 @@ public final class LocalizedImageResourc
                }
 
                // Set the SRC attribute to point to the component or shared 
resource
-               tag.put("src", 
RequestCycle.get().getOriginalResponse().encodeURL(
-                       Strings.replaceAll(url, "&", "&")));
+               tag.put(
+                       "src",
+                       RequestCycle.get()
+                               .getOriginalResponse()
+                               .encodeURL(Strings.replaceAll(url, "&", 
"&")));
        }
 
        /**
@@ -388,6 +394,28 @@ public final class LocalizedImageResourc
        };
 
        /**
+        * Tries to load static image at the given path and throws an exception 
if the image cannot be
+        * located.
+        * 
+        * @param path
+        *            The path to the image
+        * @throws WicketRuntimeException
+        *             Thrown if the image cannot be located
+        */
+       @SuppressWarnings("unchecked")
+       private void loadStaticImage(final String path)
+       {
+               MarkupContainer parent = 
component.findParentWithAssociatedMarkup();
+               if (parent instanceof Border)
+               {
+                       parent = parent.getParent();
+               }
+               final Class<?> scope = parent.getClass();
+               resourceReference = new PackageResourceReference(scope, path, 
locale, style, variation);
+               bind();
+       }
+
+       /**
         * Generates an image resource based on the attribute values on tag
         * 
         * @param value


Reply via email to