Изменить исходный 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 ответа

Если вы используете CSS-ресурсы, к ним довольно легко получить программный доступ: проверьте это http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinder.html

Код ключа:

@UiField AppResources resources;

Если вы используете аннотации в стиле GWT, AFAIK будет невозможно изменить это динамически, потому что аннотации / классы разрешаются статически, т. Е. Когда GWT компилируется (когда я в последний раз использовал GWT, это было около года или около того).

Лучшим способом было бы перемещаться по DOM и заменять связанный style.css на другую таблицу стилей. Проверьте 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

Другие вопросы по тегам