我有一个基于AbstractCell的ContactCell类。 它有两个标签和一个图像(在GWT 2.5的UiBinder中定义)。
我如何将Column.addColumn()添加到CellTable?
如果是这样,当getValue()只返回简单值(如String)时,如何使用方法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?
}
};
答案 0 :(得分:0)
您可以通过覆盖单元格的onrender mathod来更改渲染字符串,如下所示。
假设可以根据getValue mathod返回的值计算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?
}
};
答案 1 :(得分:0)
您可以使用IdentityColumn
代替普通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;
}
};
答案 2 :(得分:0)
如果基于AbstractCell
的单元格是使用UiBinder
定义的,则当前不是(GWT 2.5
)可以将此类单元格添加到CellTable
。