2013-04-07 61 views
0

我试图创建一个单独的按钮css类,应该可以通过ClientBundle访问。我的目标是通过应用程序状态以编程方式更改按钮样式。如何以编程方式添加styleDependent名称?

以下内容适用于按钮样式,但不会更改背景,因此不知道如何将-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

你有混淆的CSS资源不addStyleDependentName可以看到这个issue

的问题是addStyleDependentName追加后缀-ok现在的风格button设置元素的样式,以button-ok

但当混淆器发生作用时,在您的资源中,对buttonAB产生AAbutton-ok。因此,在确定状态下应用您的代码后,您的按钮将有AA-AB,它不符合您的CSS部分中的任何规则。

面对这个问题的唯一办法,是增加第二个风格小部件,我会做:

button.addStyleName(MyButtonResource.INSTANCE.css()buttonStyleOK());

相关问题