Removes recently added ImageResource.isStandalone. Instance of adding isStandalone to ImageResource (a breaking change) introduces subtype of ImageResourcePrototype to differentiate between standalone and bundled images. Change-Id: Ieeec29560694c548208f15c85e2e8874df4805c1
diff --git a/user/src/com/google/gwt/resources/client/ImageResource.java b/user/src/com/google/gwt/resources/client/ImageResource.java index f1885ed..5f72fb8 100644 --- a/user/src/com/google/gwt/resources/client/ImageResource.java +++ b/user/src/com/google/gwt/resources/client/ImageResource.java
@@ -147,10 +147,4 @@ * Return <code>true</code> if the image contains multiple frames. */ boolean isAnimated(); - - /** - * Returns <code>true</code> if the image is standalone, <code>false</code> - * if it's a region of a composite image. - */ - boolean isStandalone(); }
diff --git a/user/src/com/google/gwt/resources/client/impl/ImageResourcePrototype.java b/user/src/com/google/gwt/resources/client/impl/ImageResourcePrototype.java index ffabd21..5d93cae 100644 --- a/user/src/com/google/gwt/resources/client/impl/ImageResourcePrototype.java +++ b/user/src/com/google/gwt/resources/client/impl/ImageResourcePrototype.java
@@ -24,9 +24,18 @@ */ public class ImageResourcePrototype implements ImageResource { + /** + * Marker class for bundled {@code ImageResourcePrototype}. + */ + public static class Bundle extends ImageResourcePrototype { + public Bundle(String name, SafeUri url, int left, int top, int width, int height, + boolean animated, boolean lossy) { + super(name, url, left, top, width, height, animated, lossy); + } + } + private final boolean animated; private final boolean lossy; - private final boolean standalone; private final String name; private final SafeUri url; private final int left; @@ -38,7 +47,7 @@ * Only called by generated code. */ public ImageResourcePrototype(String name, SafeUri url, int left, int top, int width, int height, - boolean animated, boolean lossy, boolean standalone) { + boolean animated, boolean lossy) { this.name = name; this.left = left; this.top = top; @@ -47,7 +56,6 @@ this.url = url; this.animated = animated; this.lossy = lossy; - this.standalone = standalone; } /** @@ -97,9 +105,4 @@ public boolean isLossy() { return lossy; } - - @Override - public boolean isStandalone() { - return standalone; - } }
diff --git a/user/src/com/google/gwt/resources/rg/ImageResourceGenerator.java b/user/src/com/google/gwt/resources/rg/ImageResourceGenerator.java index 9e25e69..a5addee 100644 --- a/user/src/com/google/gwt/resources/rg/ImageResourceGenerator.java +++ b/user/src/com/google/gwt/resources/rg/ImageResourceGenerator.java
@@ -72,8 +72,8 @@ } @Override - public boolean isStandalone() { - return false; + public Class<?> getResourceType() { + return ImageResourcePrototype.Bundle.class; } public LocalizedImage addImage(TreeLogger logger, ResourceContext context, @@ -259,7 +259,7 @@ protected String normalContentsFieldName; protected String rtlContentsFieldName; - public abstract boolean isStandalone(); + public abstract Class<?> getResourceType(); public abstract ImageRect getImageRect(ImageResourceDeclaration image); @@ -304,8 +304,8 @@ } @Override - public boolean isStandalone() { - return true; + public Class<?> getResourceType() { + return ImageResourcePrototype.class; } @Override @@ -476,13 +476,14 @@ throws UnableToCompleteException { String name = method.getName(); + ImageResourceDeclaration image = new ImageResourceDeclaration(method); + DisplayedImage bundle = getImage(image); + SourceWriter sw = new StringSourceWriter(); - sw.println("new " + ImageResourcePrototype.class.getName() + "("); + sw.println("new " + bundle.getResourceType().getCanonicalName() + "("); sw.indent(); sw.println('"' + name + "\","); - ImageResourceDeclaration image = new ImageResourceDeclaration(method); - DisplayedImage bundle = getImage(image); ImageRect rect = bundle.getImageRect(image); if (rect == null) { throw new NullPointerException("No ImageRect ever computed for " + name); @@ -500,8 +501,7 @@ + urlExpressions[1] + " : " + urlExpressions[0] + "),"); } sw.println(rect.getLeft() + ", " + rect.getTop() + ", " + rect.getWidth() + ", " - + rect.getHeight() + ", " + rect.isAnimated() + ", " + rect.isLossy() + ", " - + bundle.isStandalone()); + + rect.getHeight() + ", " + rect.isAnimated() + ", " + rect.isLossy()); sw.outdent(); sw.print(")");
diff --git a/user/src/com/google/gwt/user/client/ui/Image.java b/user/src/com/google/gwt/user/client/ui/Image.java index 022117e..2c75879 100644 --- a/user/src/com/google/gwt/user/client/ui/Image.java +++ b/user/src/com/google/gwt/user/client/ui/Image.java
@@ -81,6 +81,7 @@ import com.google.gwt.event.dom.client.TouchStartHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.impl.ImageResourcePrototype; import com.google.gwt.safehtml.shared.SafeUri; import com.google.gwt.safehtml.shared.UriUtils; import com.google.gwt.user.client.Event; @@ -516,12 +517,12 @@ * @param resource the ImageResource to be displayed */ public Image(ImageResource resource) { - if (resource.isStandalone()) { - changeState(new UnclippedState(this, resource.getSafeUri(), resource.getWidth(), - resource.getHeight())); - } else { + if (resource instanceof ImageResourcePrototype.Bundle) { changeState(new ClippedState(this, resource.getSafeUri(), resource.getLeft(), resource.getTop(), resource.getWidth(), resource.getHeight())); + } else { + changeState(new UnclippedState(this, resource.getSafeUri(), resource.getWidth(), + resource.getHeight())); } setStyleName("gwt-Image"); } @@ -872,11 +873,11 @@ * @param resource the ImageResource to display */ public void setResource(ImageResource resource) { - if (resource.isStandalone()) { - state.setUrl(this, resource.getSafeUri(), resource.getWidth(), resource.getHeight()); - } else { + if (resource instanceof ImageResourcePrototype.Bundle) { state.setUrlAndVisibleRect(this, resource.getSafeUri(), resource.getLeft(), resource.getTop(), resource.getWidth(), resource.getHeight()); + } else { + state.setUrl(this, resource.getSafeUri(), resource.getWidth(), resource.getHeight()); } }
diff --git a/user/src/com/google/gwt/user/client/ui/ImageResourceRenderer.java b/user/src/com/google/gwt/user/client/ui/ImageResourceRenderer.java index c78a5ec..f6663b9 100644 --- a/user/src/com/google/gwt/user/client/ui/ImageResourceRenderer.java +++ b/user/src/com/google/gwt/user/client/ui/ImageResourceRenderer.java
@@ -17,6 +17,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.impl.ImageResourcePrototype; import com.google.gwt.safehtml.client.SafeHtmlTemplates; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeUri; @@ -36,10 +37,10 @@ @Override public SafeHtml render(ImageResource image) { - if (image.isStandalone()) { - return TEMPLATE.image(image.getSafeUri(), image.getWidth(), image.getHeight()); - } else { + if (image instanceof ImageResourcePrototype.Bundle) { return AbstractImagePrototype.create(image).getSafeHtml(); + } else { + return TEMPLATE.image(image.getSafeUri(), image.getWidth(), image.getHeight()); } } }
diff --git a/user/test/com/google/gwt/resources/client/ImageResourceTest.java b/user/test/com/google/gwt/resources/client/ImageResourceTest.java index 225634a..14d8a8e 100644 --- a/user/test/com/google/gwt/resources/client/ImageResourceTest.java +++ b/user/test/com/google/gwt/resources/client/ImageResourceTest.java
@@ -171,7 +171,7 @@ // Make sure that the large, lossy image isn't bundled with the rest assertTrue(((ImageResourcePrototype) lossy).isLossy()); assertTrue(!i64.getSafeUri().equals(lossy.getSafeUri())); - assertTrue(lossy.isStandalone()); + assertFalse(lossy instanceof ImageResourcePrototype.Bundle); assertEquals(16, r.i16x16Vertical().getWidth()); assertEquals(16, r.i16x16Vertical().getHeight()); @@ -200,10 +200,10 @@ // No image packing assertEquals(0, a.getTop()); assertEquals(0, a.getLeft()); - assertTrue(a.isStandalone()); + assertFalse(a instanceof ImageResourcePrototype.Bundle); assertEquals(0, b.getTop()); assertEquals(0, b.getLeft()); - assertTrue(b.isStandalone()); + assertFalse(b instanceof ImageResourcePrototype.Bundle); } /** @@ -220,10 +220,10 @@ // No image packing assertEquals(0, a.getTop()); assertEquals(0, a.getLeft()); - assertTrue(a.isStandalone()); + assertFalse(a instanceof ImageResourcePrototype.Bundle); assertEquals(0, b.getTop()); assertEquals(0, b.getLeft()); - assertTrue(b.isStandalone()); + assertFalse(b instanceof ImageResourcePrototype.Bundle); } @SuppressWarnings("deprecation")
diff --git a/user/test/com/google/gwt/user/client/ui/ImageTest.java b/user/test/com/google/gwt/user/client/ui/ImageTest.java index 4845f30..2d2c458 100644 --- a/user/test/com/google/gwt/user/client/ui/ImageTest.java +++ b/user/test/com/google/gwt/user/client/ui/ImageTest.java
@@ -31,6 +31,7 @@ import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.resources.client.ImageResource.ImageOptions; +import com.google.gwt.resources.client.impl.ImageResourcePrototype; import com.google.gwt.user.client.Timer; /** @@ -623,8 +624,7 @@ Bundle b = GWT.create(Bundle.class); Image image = new Image(b.prettyPiccy()); assertResourceWorked(image, b.prettyPiccy()); - - assertFalse(b.prettyPiccy().isStandalone()); + assertTrue(b.prettyPiccy() instanceof ImageResourcePrototype.Bundle); assertEquals("clipped", getCurrentImageStateName(image)); } @@ -637,7 +637,7 @@ image.setResource(b.prettyPiccy()); assertResourceWorked(image, b.prettyPiccy()); - assertFalse(b.prettyPiccy().isStandalone()); + assertTrue(b.prettyPiccy() instanceof ImageResourcePrototype.Bundle); assertEquals("clipped", getCurrentImageStateName(image)); } @@ -646,7 +646,7 @@ Image image = new Image(b.prettyPiccyStandalone()); assertResourceWorked(image, b.prettyPiccyStandalone()); - assertTrue(b.prettyPiccyStandalone().isStandalone()); + assertFalse(b.prettyPiccyStandalone() instanceof ImageResourcePrototype.Bundle); assertEquals("unclipped", getCurrentImageStateName(image)); } @@ -656,7 +656,7 @@ image.setResource(b.prettyPiccyStandalone()); assertResourceWorked(image, b.prettyPiccyStandalone()); - assertTrue(b.prettyPiccyStandalone().isStandalone()); + assertFalse(b.prettyPiccyStandalone() instanceof ImageResourcePrototype.Bundle); assertEquals("unclipped", getCurrentImageStateName(image)); }