3
我已經定義了一個ClientBundle,一個Style界面,並通過@source註釋將其與我的css文件聯繫起來。gwt css uibinder共享資源
我有兩個問題:
當我在UiBinder的文件我得到下面的異常使用
<ui:with>
:Deferred binding result type MyStyle should not be abstract.
有人能解釋這是怎麼回事?我怎樣才能正確地在我的uibinder文件中包含樣式?我想跨多個uibinder共享資源,而無需每次都支付初始化樣式的懲罰。 Gwt的貧血發展指南,建議使用
UiField(provided=true)
或使用@uiFactory
。儘管我已成功使用@uiFactory來使用我自己的自定義小部件。我不知道如何使用@uiFactory將樣式注入到uiBinder中。
例如:
//in pojo
@UiFactory
public MyStyle getMyStyle() {
return myStyle;
}
//in uibinder
<g:Label addStyleNames="{myStyle.defaultLable}"/>
我怎樣才能得到這個工作?
在此先感謝。
謝謝......你的解釋幫助我通過了我的第一個問題。你知道我怎麼能在多個uibinder文件中共享相同的資源嗎?我想創建一次我的包。再次感謝! – hba
不用擔心,因爲GWT編譯器會內聯它,所以每個uibinder中的資源初始化在生成的JavaScript中都不是問題。在您的代碼中,您可以使用在所有類上共享的靜態實例。確保你在你的啓動代碼中調用'ensureInjected',所以uibinder文件中的資源實際上被注入了。 –
我明白了,非常感謝您......您在gwt'文檔'中瞭解到:(http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinder.html#Share_resource_instances)。他們描述瞭如何使用@uiFactory註解來解決ui:with子句。你是否能夠得到這個工作? – hba