我已经渲染了一个自定义单元格,它结合了图像和文本。 它看起来像这样:
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 }
};
答案 0 :(得分:11)
Cell
对象的作用是将值转换为HTML。 Column
的作用是从每一行获取该值。例如,您有一堆Messages
,每个都在其自己的行上 - 列应该使用Message
并找出要传递给String
的{{1}}。
Cell
的输出将输入getValue
的输入。 render
的输出应该是您要在应用中看到的HTML。
伪身体,这是GWT为你做的事情:
render
您只需要定义Column.getValue和Cell.render,以便此过程生成您想要的表。
答案 1 :(得分: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