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