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()));