Изменить исходный 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 витрины для примера того, как сделать это: