Эту проблему лучше всего описать на примере.
В моем приложении GWT есть следующий ClientBundle:
interface Resources extends ClientBundle {
public static final Resources INSTANCE = GWT.create(Resources.class);
@Source("defines.css")
Defines defines();
@Source("appStyle.css")
@CssResource.NotStrict
Style style();
interface Style extends CssResource {
String appLogo();
(...)
}
interface Defines extends CssResource {
String formInputBackgroundColor();
String formInputBorderColor();
(...)
}
}
appStyle.css
- это основная таблица стилей, используемая приложением, а defines.css
- это таблица стилей, содержащая только такие константы, как:
@def formInputBackgroundColor #D8ECFD;
@def formInputBorderColor #7FAAFF;
(...)
Теперь я могу без проблем использовать константы в defines.css
таблице стилей внутри шаблонов UIBinder и в коде приложения, но я не могу использовать эти константы в моем appStyle.css
.
Я уже пробовал заменить interface Style extends CssResource
на interface Style extends Defines
, надеясь, что наследование из таблицы стилей Defines
даст мне доступ к константам в «дочерней» Style
таблице стилей, но затем компилятор GWT жалуется на такие ошибки, как:
Rebinding my.project.client.resources.Resources
Creating assignment for style()
Replacing CSS class names
The following obfuscated style classes were missing from the source CSS file:
formInputBorderColor: Fix by adding .formInputBorderColor{}
formInputBackgroundColor: Fix by adding .formInputBackgroundColor{}
(...)
Есть ли способ добиться этого?