我遵循了 an earlier posting 中列出的示例代码关于样式化 GWT CellTables,复制新 GWT 2.4 DataGrids 的代码。不幸的是,似乎没有任何效果。我想要做的就是将单元格的字体大小设置得更小,所以在我的本地 css 文件中(请参阅链接帖子中@Source 注释的第二个参数)我包括:
.dataGridCell {
font-size: 6px;
}
什么都没发生。字体大小固执地拒绝改变。然后我在 DataGrid 代码中注意到了这一点:
@ImportedWithPrefix("gwt-CellTable")
public interface Style extends CssResource {
我将 DataGrid 连同相关的三个 gif 文件复制到我的工作区中,并注释掉了对 AbstractCellTable 中 protected 方法的一个依赖项(没有空表小部件 - 哦,好吧)。我将注释中定义的前缀更改为 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 中样式接口(interface)的名称(“dataGridStyle”)相同时,它就开始工作了。
我有点明白...但不完全是。我需要更多地考虑作用域规则,并研究传递给 DataGrid 构造函数的资源参数到底发生了什么。
最佳答案
我只是按照 post you are linking to 中的描述进行了操作, 它按预期工作。我的 Resources
类如下所示:
import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.cellview.client.DataGrid.Resources;
public interface CustomDataGridResources extends Resources {
@Source({DataGrid.Style.DEFAULT_CSS, "../resources/customDataGrid.css"})
CustomStyle dataGridStyle();
interface CustomStyle extends DataGrid.Style {
}
}
然后在创建 DataGrid
实例时使用该类:
DataGrid.Resources resources = GWT.create(CustomDataGridResources.class);
gridUnits = new DataGrid<Unit>(50, resources, new UnitKeyProvider());
关于css - 新的 GWT 2.4 DataGrid——不是样式——注释错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364296/