You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/08/05 21:37:15 UTC

svn commit: r982746 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java

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