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