Так же, как с любым ClientBundle
и CssResource
: создать интерфейс, который расширяет Datagrid.Resources
и подменяет dataGridStyle
метод с @Source
аннотации, указывающие на ваш собственный файл CSS (или, возможно, как и исходный файл и свой собственный файл, так что они будут объединяться вместе).
Действовать таким образом будет переопределить стиль всеDataGrid
s в вашем приложении, хотя (это на самом деле зависит от того, CssResource
экземпляр получает ensureInjected()
первый: один из оригинального DataGrid.Resources
или один из ваших суб-интерфейс): потому что вы используете один и тот же тип возвращаемого значения (DataGrid.Style
), имена запутанных классов будут одинаковыми.
Если вы хотите изменить стиль на индивидуальной основе случая, то, кроме того, объявить интерфейс, который расширяет DataGrid.Style
и использовать его в качестве возвращаемого типа к вашему dataGridStyle
переопределения: потому что затемненный имя класса базируется на как полное имя интерфейса, так и имя метода, ваш под-интерфейс DataGrid.Style
будет генерировать разные имена запущенных классов, чем исходный интерфейс DataGrid.Style
.
Затем, конечно, GWT.create()
ваш под-интерфейс DataGrid.Resources
и передать его в качестве аргумента в конструктор DataGrid
.
Смотрите также http://code.google.com/p/google-web-toolkit/issues/detail?id=6144
Я был в состоянии получить свое первое предложение работать, но я не мог сделать это с ensureInject упорядоченности. Любой заказ приведет к использованию исходного css. Глядя на DataGrid.java, похоже, что он всегда использует собственный результат GWT.create. Передача его конструктору сработала. '\t MyResources Открытый интерфейс расширяет DataGrid.Resources { \t @Source ({DataGrid.Style.DEFAULT_CSS, "DataGrid.css"}) \t \t DataGrid.Данные стиляGridStyle(); \t} \t статические ресурсы MyResources = GWT.create (MyResources.class); ' – Glenn
Немного об использовании другого стиля в каждом конкретном случае спас меня. Благодаря :) –