Вот кое-что ценное, что я понял, соединив информацию из других сообщений в этой теме, особенно ...
Если вы используете @external, вы можете переопределить стили gwt. Проблема в том, что это изменение применяется во всем мире! Однако возможно расширить и переопределить атрибуты выбора, не затрагивая каждый экземпляр типа виджета. (Это подобно программному стилю создания класса css с именем класса gwt + суффикс и использованием addStyleDependantName ().)
Вот пример использования UIBinder + CssResource для расширения стиля gwt. Я пропустил часть CssResource, но вы поймете идею ...
В вашем файле xxxx.ui.xml представьте стиль gwt, но не связывайтесь с ним!
<ui:style>
@external .gwt-Button; .gwt-Button {}
</ui:style>
Затем создайте стиль для виджета, указав 2 (или более) стиля в атрибуте styleName. То есть стиль gwt и один (или более) из вашего ресурса.
<g:Button ui:field="submitButton_" text="Submit" styleName="{style.gwt-Button} {res.loginStyles.submitButtonStyle}" />
Вот класс css:
.submitButtonStyle{
margin: 3px 5px 5px 0px;
}
В этом случае я определил кнопку, которая стилизована в стандартном методе (легко изменяется через наследование модуля), но с определенным полем, которое останется фиксированным. Это не испортило глобальный стиль, не потребовало определения всех атрибутов вручную и позволило по желанию менять глобальный стиль с помощью clean.css, dark.css и т. Д.