使用GWT和ClientBundle时,在运行时更改源CSS

时间:2011-03-10 09:37:25

标签: css gwt clientbundle

我有一个ClientBundle:

public interface Resources extends ClientBundle {

    @Source("styles/styles.css")
    Layout styles();

    @Source("styles/styles2.css")
    Styles styles2();

}

在我的UiBinder xml中,我使用这个类:

<ui:with field='resources' type='com.nordea.omega.gwt.client.ui.AppResources' />
...
<div class="{resources.styles.label}">Text</div>

标准是使用styles.css,但是在运行时更改是否可以改为使用styles2.css?

2 个答案:

答案 0 :(得分:1)

如果您使用GWT样式的注释,AFAIK将无法动态更改,因为注释/类是静态解析的,即GWT编译时(上次我使用GWT时大约一年左右)。

最好的方法是导航DOM并将链接的style.css更改为另一个样式表。 检查showcase src以获取如何执行此操作的示例:

http://code.google.com/p/google-web-toolkit/source/browse/branches/crawlability/samples/showcase/src/com/google/gwt/sample/showcase/client/Showcase.java?r=5652#514

答案 1 :(得分:1)

如果你使用CSS资源,以编程方式访问它们非常容易:查看http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinder.html#Programmatic_access

关键代码是:

@UiField AppResources resources;