2

我已经渲染了一个结合了图像和文本的自定义单元格。它看起来像这样:

   class ImageTextCell extends AbstractCell<String> 

我的问题是如何将此单元格添加到 celltable/datagrid 中。我已经厌倦了这个。

  Column<Message, String> iconColumn = new Column<Message, String>(new ImageTextCell())
            {
        @Override
        public String getValue(Message versionStatus) {

            return ? // I dont know what to type here. How to return the ImageTextCell object           }
    };
4

2 回答 2

11

对象的作用Cell是将一个值变成一段 HTML。的作用Column是从每一行中获取该值。例如,您有一堆Messages,每个都在自己的行上 - Column 应该采用 aMessage并弄清楚String要传递给Cell.

的输出getValue将馈入 的输入render。的输出render应该是您希望在应用程序中看到的 HTML。

伪代码,这是 GWT 为您所做的:

for each Message in your table {
    pass the Message into Column.getValue and get out a String
    pass that String into Cell.render and get out some HTML
    add that HTML inside a <td> element in the table we're drawing
}

您只需定义 Column.getValue 和 Cell.render 以便此过程生成您想要的表格。

于 2012-06-30T14:30:12.033 回答
0

这是我在我的应用程序中显示 png 标志的一种方法:

  Column<IStationMini, ImageResource> flag = new Column<IStationMini, ImageResource>( new ImageResourceCell()) {
        @Override
        public ImageResource getValue(IStationMini station) {
            return FlagsTools.getFlag( station.getCountry());
        }
    };
this.addColumn( flag ) ;

“FlagsTools.getFlag()”返回一个 imageResource

于 2012-06-30T08:31:33.960 回答