0

我有一个基于 AbstractCell 的 ContactCell 类。它有两个标签和一个图像(在 GWT 2.5 的 UiBinder 中定义)。

如何 Column.addColumn() 将此自定义单元格添加到 CellTable?

如果是这样,当 getValue() 仅返回简单值(例如字符串)时,如何使用方法 getValue() 填充 ContactCell 的字段。

Column<Contact, String> column = new Column<Contact, String>(
    new ContactCell()) {
  @Override
  public String getValue(Contact object) {
    return object... CAN ONLY RETURN ONE VALUE. HOW TO POPULATE 2 LABELS & IMAGE?
  }
};
4

3 回答 3

0

您可以通过覆盖单元格的 onrender 方法来更改渲染字符串,如下所示。

假设可以根据 getValue 方法返回的值计算 2 个标签和一张图像。

ContactCell contactCell = new ContactCell()
{
    @Override
    public void render( com.google.gwt.cell.client.Cell.Context context, SafeHtml value, SafeHtmlBuilder sb )
    {

    // do value check and compute label1 and label2 and calso compute the image path.       

    sb.appendHtmlConstant( "<label>LABEL1</label>" +"<label>LABEL2</label>"+"<image></image>" )
    }
});


Column<Contact, String> column = new Column<Contact, String>( contactCell ) 
{
  @Override
  public String getValue(Contact object) 
  {
    return object... CAN ONLY RETURN ONE VALUE. HOW TO POPULATE 2 LABELS & IMAGE?
  }
};
于 2013-02-25T16:53:37.047 回答
0

您可以使用 anIdentityColumn代替法线Column (将通过整个 Contact 对象),也可以使用这样的法线Column

Column<Contact, String[]> column = new Column<Contact, String[]>(
    new ContactCell()) {
  @Override
  public String[] getValue(Contact object) {
    String[] retvalue = new String[2];
    retvalue[0] = "SOMETHING";
    retvalue[1] = "SOME OTHER THING";
    return retvalue;
  }
};
于 2013-02-26T15:54:06.930 回答
0

如果基于的单元格AbstractCell是使用 then 定义UiBinder的,则当前(GWT 2.5无法将此类单元格添加到CellTable.

于 2013-02-28T16:53:07.913 回答