Как именно можно переопределить CssResource - PullRequest
3 голосов
/ 10 мая 2011

В настоящее время у меня есть приложение, использующее CssResource в gwt, как это ...

interface MyClientBundle extends ClientBundle{

@Source("images/one.png")
Image someImageThatAlwaysLooksTheSame();

@Source("images/two.png")
Image someImageThatDependingOnTheClientThemeChanges();

@Source("css/main.css")
MyCssResource css();

}

А затем интерфейс CssResource

interface MyCssResource extends CssResource{

String someStyleThatNeverChanges();

String someStyleThatChangesDependingOnTheClient();

}

Если я переопределю MyClientBundle для создания и интерфейса под названием MyPinkThemedClientBundle

interface MyClientBundle extends ClientBundle{

@Source("images/one.png")
Image someImageThatAlwaysLooksTheSame();

@Source("images/**twoPinkVersion**.png")
Image someImageThatDependingOnTheClientThemeChanges();

@Source("css/**mainPinkVersion**.css")
MyPinkCssResource css();

}

Тогда, конечно, MyPinkCssResource расширяет MyCssResource

interface MyPinkCssResource extends MyCssResource{


} 

Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь скомпилировать это, компилятор GWT жалуется на то, что в "css / mainPinkVersion.css" отсутствует имя стиля "someStyleThatNeverChanges". Я бы подумал, что интерфейс cssresource унаследует файл поддержки css своего суперкласса. Если это не так, возможно ли достичь эффекта расширения CssResource и переопределения только тех классов, которые вам нужны, но в противном случае используйте файл поддержки .css суперклассов?

1 Ответ

6 голосов
/ 24 августа 2011

Я столкнулся почти с этой проблемой.Решение, которое я нашел после прочтения примера @Import в документации GWT , заключается в следующем.В вашем MyPinkThemedClientBundle вам нужно определить метод css () следующим образом:

@Source({"main.css", "css/**mainPinkVersion**.css"})
MyCssResource css();

Если вы просто переопределяете уже определенные CSS-записи и не создаете новые, к которым нужно обращаться в вашем коде, тогдане потребуется тип MyPinkCssResource.

...