如何将css类添加到CellTable小部件(GWT)的第一列?

时间:2012-05-22 14:43:03

标签: gwt gwt-2.2-celltable

我在GWT中使用了一个CellTable小部件。

我想更改第一列中包含的每个文本的字体大小。方法addColumnStyleName不符合我的需要,因为它将类添加到colgroup标记;只有部分css在此标记上处理,我无法更改colgroup的字体属性(它没有文本上的发生率)。

所以,我想在第一列的每个td上添加一个类,但找不到一个简单的方法。

像列的setRowStyles这样的东西会很好但是它不存在......

你有什么关于这样做的暗示吗?

编辑:我使用GWT 2.3而不是2.4(其方法为setCellStyleNames)

2 个答案:

答案 0 :(得分:3)

就像在Column个实例上调用setCellStyleNames一样简单。

答案 1 :(得分:0)

我终于明白了。但我对这个解决方案并不满意。这个简单的任务有点冗长。我对任何其他建议持开放态度。

我实现它的方法是创建一个新单元格和一个新列:

private class KeyColumn extends Column<SimpleLegendItem, String> {

    public KeyColumn() {
        super(new KeyCell());
    }

    @Override
    public String getValue(SimpleLegendItem item) {
        return item.getKey();
    }       
}

private class KeyCell extends AbstractCell<String> {

    @Override
    public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
        sb.appendHtmlConstant("<span class=\"" + tableResources.cellTableStyle().box() + "\">");
        sb.appendEscaped(value);
        sb.appendHtmlConstant("</span>");
    }       
}

为了简化示例,我故意不使用模板。