在GWT CellTable上添加子行

use*_*378 1 gwt celltable

我有一个CellTable,需要一个不同类型的子行。类似于http://showcase2.jlabanca-testing.appspot.com/#!CwCustomDataGrid

我不希望使用DataGrid,因为我了解它具有固定的高度,并且我的表在动态高度下看起来更好。

我试图扩展CellTable然后写

    public void renderRowValues(SafeHtmlBuilder sb,
            java.util.List<ShipmentLeg> values,
            int start,
            SelectionModel<? super ShipmentLeg> selectionModel){
        super.renderRowValues(sb, values, start, selectionModel);

        GWT.log("HELLO");
    }
Run Code Online (Sandbox Code Playgroud)

有什么好的策略可以做到这一点?注意:在此代码中,永远不会调用GWT.log,因为在超级代码中会引发弃用错误

干杯

And*_*olo 5

CellTable和之间的API DataGrid相同。从GWT 2.5开始,该renderRowValues()方法已弃用,为了更改两个表的默认表结构(例如,创建子行),您需要提供一个CellTableBuilder

两种表的实现都使用DefaultCellTableBuilder(扩展AbstractCellTableBuilder该表以利用大多数位并仅公开一个buildRowImpl()方法)。无论您使用CellTable还是,这都是您要寻找的东西DataGrid

扩展AbstractCellTableBuilder并提供的实现buildRowImpl(),就像您链接的示例一样。请注意,您链接了一个旧样本。你应该总是指一个在目前的展示,作为API略有不同。

旁注:DataGrid根本没有“固定高度”,但是需要一个ProvidesResize容器,因为它需要在布局更改时动态调整其大小(例如,在浏览器调整大小时)。检查出,如果您还没有。