我正在尝试创建一个单独的Button css类,该类应该可以由ClientBundle
访问。我的目标是按应用程序状态以编程方式更改按钮样式。
以下内容适用于按钮样式,但不会更改背景,因此不会考虑-ok
依赖样式名。为什么呢?
.myButton {
background: white;
}
.myButton-ok {
background: green;
}
public interface MyButtonResource extends ClientBundle {
public static final MyButtonResource INSTANCE = GWT.create(MyButtonResource.class);
@Source("MyButtonResource.css")
Style css();
interface Style extends CssResource {
@ClassName("myButton")
String buttonStyle();
@ClassName("myButton-ok")
String buttonStyleOK();
}
}
MyButtonResource.INSTANCE.css().ensureInjected();
setStyleName(MyButtonResource.INSTANCE.css().buttonStyle());
button.addStyleDependentName(MyButtonResource.INSTANCE.css().buttonStyleOK());
答案 0 :(得分:0)
您不能addStyleDependentName
使用混淆的css资源,请参阅此issue
问题是,addStyleDependentName
会将后缀-ok
附加到当前样式button
,将元素的样式设置为button-ok
但是当混淆器行动时,在您的资源中,AA
button
和AB
button-ok
会产生AA-AB
。因此,在将代码应用于“确定”状态后,您的按钮将{{1}}与您的css部分中的任何规则都不匹配。
面对这个问题的唯一方法是在你的小部件中添加第二种风格,我会这样做:
button.addStyleName(MyButtonResource.INSTANCE.css()buttonStyleOK());