我已经遵循了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中注释掉了一个对受保护方法的依赖(没有空表小部件 - 哦)。我将注释中定义的前缀更改为gwt- DataGrid - 并且pfffft! - 它仍然没有用。
那我在这里错过了什么?注释中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构造函数的资源参数会发生什么。
答案 0 :(得分:2)
我刚刚按照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());
答案 1 :(得分:1)
当您覆盖由GWT CSS文件设置的样式时,您需要在自己的CSS定义中添加“!important”。像这样:
.dataGridCell {
font-size: 6px !important;
}
.dataGridEvenRow {
background: #ff0000 !important;
}
答案 2 :(得分:1)
使用线
时要小心@Source({DataGrid.Style.DEFAULT_CSS, "../resources/customDataGrid.css"})
这意味着gwt同时使用默认和自己的css。我知道它是这样编码但是当你使用copy&amp;粘贴你可能会像我一样混淆为什么你们两种风格在一起。