Allow CssResource @url syntax to find DataResource methods declared in bundle super-interfaces. Misc formatting cleanups. Patch by: nwolf Review by: bobv git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5667 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java b/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java index dff332a..e8af11d 100644 --- a/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java +++ b/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java
@@ -946,10 +946,18 @@ String functionName = def.getValues().get(0).isIdentValue().getIdent(); // Find the method - JMethod method = context.getClientBundleType().findMethod( - functionName, new JType[0]); + JMethod methods[] = context.getClientBundleType().getOverridableMethods(); + boolean foundMethod = false; + if (methods != null) { + for (JMethod method : methods) { + if (method.getName().equals(functionName)) { + foundMethod = true; + break; + } + } + } - if (method == null) { + if (!foundMethod) { logger.log(TreeLogger.ERROR, "Unable to find DataResource method " + functionName + " in " + context.getClientBundleType().getQualifiedSourceName());
diff --git a/user/test/com/google/gwt/resources/client/CSSResourceTest.java b/user/test/com/google/gwt/resources/client/CSSResourceTest.java index 6cc3eca..b0c4664 100644 --- a/user/test/com/google/gwt/resources/client/CSSResourceTest.java +++ b/user/test/com/google/gwt/resources/client/CSSResourceTest.java
@@ -28,6 +28,13 @@ */ public class CSSResourceTest extends GWTTestCase { + interface ChildResources extends Resources { + ChildResources INSTANCE = GWT.create(ChildResources.class); + + @Source("16x16.png") + ImageResource spriteMethod(); + } + interface ConcatenatedResources extends ClientBundle { @Source(value = {"concatenatedA.css", "concatenatedB.css"}) @Strict @@ -44,10 +51,10 @@ String lengthString(); int overrideInt(); - + @ClassName("overrideInt") String overrideIntClass(); - + double percentFloat(); int percentInt(); @@ -168,6 +175,14 @@ System.out.println(s); } + public void testChildResources() { + Resources parentResource = GWT.create(Resources.class); + ChildResources childResource = GWT.create(ChildResources.class); + + assertEquals(parentResource.dataMethod().getName(), + childResource.dataMethod().getName()); + } + public void testConcatenatedResource() { ConcatenatedResources r = GWT.create(ConcatenatedResources.class); String text = r.css().getText(); @@ -270,7 +285,7 @@ assertEquals("100px", defines.lengthString()); assertEquals("#f00", defines.colorString()); - + assertEquals(10, defines.overrideInt()); assertNotNull(defines.overrideIntClass()); assertFalse("10px".equals(defines.overrideIntClass()));