Я следовал примеру кода, изложенному в более ранней публикации , касающейся стилизации 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 - и pfffft! - все равно это не сработало.
Так чего мне здесь не хватает? Это правильный префикс gwt-CellTable в аннотации? Мне это кажется подозрительным, хотя мне не удалось заставить его работать с моим изменением.
Оказывается, имена имеют значение. Duh!
ОК, все заработало. Оказывается, важно использовать одни и те же имена. Duh!
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.