Как использовать CellTable.Style с GWT 2.7.0 без UiBinder?
Я присоединился к проекту приложения GWT несколько недель назад. Кодовая база была запущена еще в 2009 году. Я пытаюсь заменить FlexTable на CellTable, чтобы использовать преимущества сортируемых столбцов. Текущая версия GWT в проекте - 2.7.0, но, просматривая код, кажется, что все еще используются некоторые функции, которые вышли из моды. Я новичок в GWT, я могу ошибаться.
Пока что все функционально хорошо. Тем не менее, GWT, похоже, отвергает мои попытки обновить CSS. Я использовал пример GWT dynatablerf в качестве модели для добавления CSS в CellTable. TimeSlotWidget использует CellTable.Style:
interface TableResources extends CellTable.Resources {
@Override
@Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
CellTable.Style cellTableStyle();
}
И затем применяет его к CellTable следующим образом:
table = new CellTable<TimeSlotListWidget.ScheduleRow>(ROWS_IN_A_DAY,
GWT.<TableResources> create(TableResources.class));
Я пытался использовать этот подход в моем коде. Я даже опустил CellTable.Style.DEFAULT_CSS
из списка значений и создал мою собственную таблицу стилей CSS, которая началась как копия GWT CellTable.css
Я заметил, что в примере GWT TimeSlotListWidget есть файл ui.xml с UIBinder. Мой проект в настоящее время не использует UIBinder.
Когда я запускаю свой код, появляется <style>
блок вставлен в страницу, которая кажется стандартной GWT CellTable.css. Затем сразу после этого, другой <style>
Блок вставлен с моим CSS. И мой CSS не переопределяет стандартный CSS GWT.
Как я могу сохранить GWT CellTable.css от вставки? Почему это вставляется?
1 ответ
Проблема в том, что в вашем коде вы используете повторно CellTable.Style
и два разных ClientBundles использовали один и тот же тип, но каждый связывал свой собственный CSS с ним.
Вместо этого продлите CellTable.Style
интерфейс и использовать это в вашем комплекте:
interface MyCellTableStyle extends CellTable.Style {}
interface TableResources extends CellTable.Resources {
@Override
@Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
MyCellTableStyle cellTableStyle();
}