当前位置 : 主页 > 网页制作 > css >

gwt css uibinder共享资源

来源:互联网 收集:自由互联 发布时间:2021-06-13
我已经定义了一个ClientBundle,一个Style接口,并通过@source注释将其与我的css文件连接起来. 我有两个问题: 当我使用 ui:with在我的uibinder文件中,我得到以下异常:延迟绑定结果类型MyStyl
我已经定义了一个ClientBundle,一个Style接口,并通过@source注释将其与我的css文件连接起来.

我有两个问题:

>当我使用< ui:with>在我的uibinder文件中,我得到以下异常:延迟绑定结果类型MyStyle不应该是抽象的.有人可以解释发生了什么吗?以及如何在我的uibinder文件中正确包含样式?
>我想在许多uibinder上分享资源,而不必每次都支付初始化样式的惩罚. Gwt的贫血开发指南建议使用UiField(提供= true)或使用@uiFactory.虽然我已成功使用@uiFactory来使用我自己的自定义小部件.我不知道如何使用@uiFactory将样式注入uiBinder.

例如:

//in pojo
@UiFactory
public MyStyle getMyStyle() {
    return myStyle;
}

//in uibinder
<g:Label addStyleNames="{myStyle.defaultLable}"/>

我怎么能得到这个工作?

提前致谢.

我在uibinder文件中使用以下构造:

<ui:with field='res' type="com.example.client.resources.MyResource" />

MyResource是包含css资源的接口:

public interface MyResource extends ClientBundle {
  @Source("mycss.css")
  MyCssResource css();
}

和MyCssResource是:

public interface MyCssResource extends CssResource {
    String someStyle();
}

在uibinder文件中,使用如下:

<g:TextBox addStyleNames="{res.css.someStyle}" />
网友评论