2014-03-13 30 views
0

我已經偶然發現了gwt似乎沒有辦法解決的情況。gwt no CssResource'WithLookup'方法

我創建了一個包含許多動態剪輯圖像的複合控件,所以我可以像剪貼圖一樣移動剪輯。一切都很順利,直到我開始使用json作爲描述佈局的TextResource。 ui-binder在我的情況下不起作用。

我得到ClientBundleWithLookup和ConstantsWithLookup工作正常,但沒有查找CSS類。 style()的查找(就像在很多例子中一樣)會給你這個原始css文件的混淆塊 - 但是沒有辦法將這些giberish名稱映射到最初在css和json定義中的內容。

然後我想到一個解決辦法是發送我的CSS作爲TextResource而不是CssResource並處理它manualy。花了整整一天的時間做這件事 - 瀏覽器中沒有樣式,因爲生成的gwt javascript在瀏覽器中查找這些giberish名稱。

我需要一種方法來在運行時查找css樣式名稱,理想的情況也是有一個CssResourceWithLookup類。也沒有反射,所以我不能映射Java方法傳遞給setStyleName()的。

我也在谷歌的某個地方發現了一個生成這些名稱的調試映射的方法 - 但是我不明白這將如何幫助我,因爲這些名稱在每次編譯後都會改變。所以我完全卡住了。我只是不明白gwt團隊如何在一半資源包中失敗這種「查找」功能。

任何一種解決方法 - 請?

回答

1

@external可能會對您有所幫助:它會將類名混淆關閉。

在MyStyles.css:

@external .style1, .style2; 

    .style1{ 
     color: green; 
    } 

    .style2{ 
     color: red; 
    } 

在你的Java代碼:

myTile1.addStyleNames("style1"); 
myTile2.addStyleNames("style2");