【发布时间】:2010-04-14 23:27:06
【问题描述】:
我是 GWT 的新手;我正在构建一个小型示例应用程序。我有几个 CSS 文件。我能够成功地使用 ClientBundle 和 CssResource 将样式分配给我的 UiBinder 脚本中定义的元素。
现在我想更进一步,使用@def css-rule 引入CSS 常量。当我定义一个常量并在同一个 CSS 文件中使用它时,@def 效果很好。但是我不能在另一个 CSS 文件中使用它。当我尝试使用 @eval 规则来评估现有常量时,编译器会抛出一个 execption:“无法对非静态方法进行静态引用”。
这是我正在尝试做的一个示例:
ConstantStyle.css
@def BACKGROUND red;
ConstantStyle.java
package abc;
import ...;
interface ConstantStyle extends cssResource {
String BACKGROUND();
}
MyStyle.css
@eval BACKGROUND abc.ConstantStyle.BACKGROUND();
.myClass {background-color: BACKGROUND;}
MyStyle.java
package abc;
import ...;
interface ConstantStyle extends cssResource {
String myClass;
}
MyResources.java
package abc;
import ...;
interface MyResources extends ClientBundle {
@Source("ConstantStyle.css")
ConstantStyle constantStyle();
@Source("MyStyle.css")
MyStyle myStyle();
}
提前致谢!
【问题讨论】: