gpt4 book ai didi

java - GWT 数据网格列

转载 作者:行者123 更新时间:2023-11-29 08:57:13 25 4
gpt4 key购买 nike

我有一个 GWT 项目,其中包含多个 DataGrid。到目前为止,我已经实现了一个(使用 ASyncDataProvider)并且工作正常。但我真的不喜欢所有困惑的样板代码来指定列。这是一个示例:

    //some column
Column<DataRecord, String> dataColumn = new Column<DataRecord, String>(new TextCell()) {
public String getCellStyleNames(Context ctx, DataRecord record) {
//some columns have a style based on the value, calculate style here
}
public String getValue(DataRecord record) {
return record.getProperty();
}
};
dataGrid.addColumn(dataColumn);
dataGrid.setColumnWidth(dataColumn, 25, Unit.PX);

有没有办法减少代码量?想象一个有十几个列的表,代码会变得非常乏味。网格本身由 UiBinder 呈现,但 UiBinder 似乎无法在 DataGrid 上指定列。

我看过这个: Defining GWT CellTables with UiBinder但这涉及到使用 HTML 表格,但我不想失去 DataGrid 提供的所有功能,所以我不愿意走这条路。

欢迎任何其他建议。

最佳答案

像这样使用 MyColumn 类

private class MyColumn extends Column<DataRecord, String>
{
private String field;
public MyColumn(String field)
{
super(new TextCell());
this.field = field;
}

public String getValue(DateRecord rec)
{
if (this.field.equals("prop1")
return rec.getProp1();
else if (this.field.equals("prop2")
return rec.getProp2();
else
return "ERROR";
}
}

然后

dataGrid.addColumn(new MyColumn("prop1"));
dataGrid.addColumn(new MyColumn("prop2"));

丑陋,但有效。为了让它更好,您可以使用一些与 GWT 一起使用的反射工具包。

关于java - GWT 数据网格列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com