2013-04-07 41 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());

相關問題