Here's the testcase:
Code:
@Override
public void onModuleLoad() {
VLayout layout = new VLayout();
ListGrid grid = new ListGrid() {
@Override
public Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {
String fieldName = this.getFieldName(colNum);
if (fieldName.equals("field1")) {
HLayout recordCanvas = new HLayout(8);
recordCanvas.setHeight(22);
recordCanvas.setAlign(Alignment.CENTER);
ImgButton btn1 = new ImgButton();
btn1.setShowDown(false);
btn1.setShowRollOver(false);
btn1.setHeight(16);
btn1.setWidth(16);
btn1.setSrc("16x16/save.png");
ImgButton btn2 = new ImgButton();
btn2.setShowDown(false);
btn2.setShowRollOver(false);
btn2.setHeight(16);
btn2.setWidth(16);
btn2.setSrc("16x16/help.png");
ImgButton btn3 = new ImgButton();
btn3.setShowDown(false);
btn3.setShowRollOver(false);
btn3.setHeight(16);
btn3.setWidth(16);
btn3.setSrc("16x16/delete.png");
recordCanvas.addMember(btn1);
recordCanvas.addMember(btn2);
recordCanvas.addMember(btn3);
return recordCanvas;
}
return null;
}
};
grid.setWidth(1000);
grid.setHeight(500);
grid.setCanGroupBy(false);
grid.setCanFreezeFields(false);
grid.setCanAutoFitFields(false);
grid.setShowAllRecords(false);
grid.setShowRecordComponents(true);
grid.setShowRecordComponentsByCell(true);
ListGridField field1 = new ListGridField("field1", "field1");
ListGridField field2 = new ListGridField("field2", "field2");
ListGridField field3 = new ListGridField("field3", "field3");
ListGridField field4 = new ListGridField("field4", "field4");
ListGridField field5 = new ListGridField("field5", "field5");
ListGridField field6 = new ListGridField("field6", "field6");
grid.setFields(field1, field2, field3, field4, field5, field6);
ArrayList<ListGridRecord> records = new ArrayList<ListGridRecord>();
for (int i = 0; i < 50000; i++) {
ListGridRecord rec = new ListGridRecord();
rec.setAttribute("field1", "");
rec.setAttribute("field2", "field2" + i);
rec.setAttribute("field3", "field3" + i);
rec.setAttribute("field4", "field4" + i);
rec.setAttribute("field5", "field5" + i);
rec.setAttribute("field6", "field6" + i);
records.add(rec);
}
grid.setData(records.toArray(new ListGridRecord[]{}));
layout.addMember(grid);
RootPanel.get().add(layout);
}
Leave a comment: