Я следовал примеру кода, приведенному в более ранней публикации. относительно стиля GWT CellTables, копируя код для новых GWT 2.4 DataGrids. К сожалению, ничего не помогло. Все, что я хочу сделать, это уменьшить размер шрифта ячеек, поэтому в моем локальном файле CSS (см. Второй параметр аннотации @Source в связанном сообщении) я включил:
.dataGridCell {
font-size: 6px;
}
Ничего не случилось. Размер шрифта упорно отказывался меняться. Затем я заметил это в коде DataGrid:
@ImportedWithPrefix("gwt-CellTable")
public interface Style extends CssResource {
Я скопировал DataGrid в свою рабочую область вместе с тремя связанными файлами gif и закомментировал одну зависимость от защищенного метода в AbstractCellTable (без виджетов пустой таблицы — да ладно). Я изменил префикс, указанный в аннотации, на gwt-DataGrid — и пфффф! -- все равно не получилось.
Итак, что мне здесь не хватает? Верен ли этот префикс gwt-CellTable в аннотации? Мне кажется подозрительным, хотя мне не удалось заставить его работать с моим изменением.
Оказывается, имена имеют значение. Да!
Хорошо, заработало. Оказывается, важно использовать одни и те же имена. Да!
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.cellview.client.DataGrid.Style;
import com.google.gwt.user.cellview.client.DataGrid.Resources;
public interface MyDataGridResources extends Resources {
public static final MyDataGridResources INSTANCE = GWT.create(MyDataGridResources.class);
@Override
@Source({DataGrid.Style.DEFAULT_CSS, "../resources/styling/mydatagridstyles.css"})
Style dataGridStyle(); // ***********************
}
Когда я сделал имя стиля таким же, как имя интерфейса стиля в DataGrid.java ("dataGridStyle"), он начал работать.
вроде понял... но не совсем. Мне нужно больше подумать о правилах области видимости, а также точно изучить, что происходит с параметром ресурсов, переданным в конструктор DataGrid.