GWT 2 CssResource error

344 views
Skip to first unread message

shahid

unread,
Nov 9, 2009, 10:13:57 AM11/9/09
to Google Web Toolkit
I have a GWT 1.7 application and I want to upgrade it to GWT 2
Milestone 2. The application uses 2 big external CSS files. In GWT 1.7
I had a public folder and put both the CSS files in the folder and my
application compiled and worked fine. Now for GWT 2 I have created a
ResourceBundle class and put all image sprites and CSS as follows:

public interface ResourceBundle extends ClientBundle {

public static final ResourceBundle INSTANCE = GWT.create
(ResourceBundle.class);

@Source("com/web/tech/public/stylesheet1.css")
public Css stylesheet1();

@Source("com/web/tech/public/stylesheet2.css")
public Css stylesheet2();

@Source("com/docobo/keswick/keswickweb/public/images/
organisnew.gif")
public ImageResource add_org();

.....
}

The Css class is an empty class extending CssResource :


public interface Css extends CssResource{

}


Then in my onModuleLoad() I use :


StyleInjector.inject(ResourceBundle.INSTANCE.stylesheet1().getText
());
StyleInjector.inject(ResourceBundle.INSTANCE.stylesheet2().getText
());

When I compile I get the following error:


Rebinding
com.docobo.keswick.keswickweb.client.ClientResources.ResourceBundle
Invoking <generate-with
class='com.google.gwt.resources.rebind.context.InlineClientBundleGenerator'/
>
Creating assignment for gxt_gray()
Replacing CSS class names
[ERROR] The following unobfuscated classes
were present in a strict CssResource:
[ERROR] x-tab-scroller-left
[ERROR] x-tab-strip-disabled
[ERROR] ......loads of other styles

Fix by adding String accessor method(s) to the CssResource
interface for obfuscated classes, or using an @external declaration
for unobfuscated classes.

Following the above instruction when I use @external above all my
style classes inside the CSS file I get the following error :

[ERROR] Generator
'com.google.gwt.resources.rebind.context.InlineClientBundleGenerator'
threw threw an exception while rebinding
'com.docobo.keswick.keswickweb.client.ClientResources.ResourceBundle'
java.lang.StringIndexOutOfBoundsException: String index out of
range: -2
at java.lang.String.substring(Unknown Source)
at com.google.gwt.resources.css.GenerateCssAst
$GenerationHandler.ignorableAtRule(GenerateCssAst.java:236)
at org.w3c.flute.parser.Parser.atRuleDeclaration(Parser.java:
1178)
at org.w3c.flute.parser.Parser.ignoreStatement(Parser.java:622)
at org.w3c.flute.parser.Parser.parserUnit(Parser.java:452)
at org.w3c.flute.parser.Parser.parseStyleSheet(Parser.java:107)
at org.w3c.flute.parser.Parser.parseStyleSheet(Parser.java:119)
at com.google.gwt.resources.css.GenerateCssAst.exec
(GenerateCssAst.java:663)
at com.google.gwt.resources.rg.CssResourceGenerator.prepare
(CssResourceGenerator.java:506)
at
com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.initAndPrepare
(AbstractClientBundleGenerator.java:531)
at
com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.initAndPrepare
(AbstractClientBundleGenerator.java:502)
at
com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.generate
(AbstractClientBundleGenerator.java:179)
at com.google.gwt.dev.cfg.RuleGenerateWith.realize
(RuleGenerateWith.java:49)
at com.google.gwt.dev.shell.StandardRebindOracle
$Rebinder.tryRebind(StandardRebindOracle.java:108)
at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind
(StandardRebindOracle.java:54)
at com.google.gwt.dev.shell.StandardRebindOracle.rebind
(StandardRebindOracle.java:154)
at com.google.gwt.dev.shell.StandardRebindOracle.rebind
(StandardRebindOracle.java:143)
at com.google.gwt.dev.Precompile
$DistillerRebindPermutationOracle.getAllPossibleRebindAnswers
(Precompile.java:315)
at
com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds
(WebModeCompilerFrontEnd.java:107)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.process
(AbstractCompiler.java:161)
at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.java:444)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.compile
(AbstractCompiler.java:84)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.compile
(AbstractCompiler.java:196)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.access$300
(AbstractCompiler.java:70)
at com.google.gwt.dev.jdt.AbstractCompiler.compile
(AbstractCompiler.java:481)
at
com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclarations
(BasicWebModeCompiler.java:113)
at
com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDeclarations
(WebModeCompilerFrontEnd.java:49)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile
(JavaToJavaScriptCompiler.java:415)
at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile
(JavaScriptCompiler.java:32)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:507)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:408)
at com.google.gwt.dev.Compiler.run(Compiler.java:194)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:145)
at com.google.gwt.dev.CompileTaskRunner.doRun
(CompileTaskRunner.java:89)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger
(CompileTaskRunner.java:83)
at com.google.gwt.dev.Compiler.main(Compiler.java:152)

Thomas Broyer

unread,
Nov 9, 2009, 10:30:02 AM11/9/09
to Google Web Toolkit
It's not to be used "above", as a Java5 annotation; see
http://code.google.com/p/google-web-toolkit/wiki/CssResource#External_and_legacy_scopes

shahid

unread,
Nov 9, 2009, 10:42:23 AM11/9/09
to Google Web Toolkit
Thank you Thomas. Putting @external next (left) to the style solved
the problem :) regards shahid
> It's not to be used "above", as a Java5 annotation; seehttp://code.google.com/p/google-web-toolkit/wiki/CssResource#External...

shahid

unread,
Nov 9, 2009, 11:11:28 AM11/9/09
to Google Web Toolkit
My css background images are not working though. May be there is a
different way to use background images in GWT 2.
Reply all
Reply to author
Forward
0 new messages