}
}
public Canvas getViewPanel() {
Canvas canvas = new Canvas();
final ServerCountLabel serverCountLabel = new ServerCountLabel();
ItemSupplyXmlDS supplyXmlDS = new ItemSupplyXmlDS(SC.generateID()) {
//this approach logs simulated server trips for DataSources with clientOnly:true
//so that no server is required. Since this example has a clientOnly datasource that loads data
//from a static xml, use the simulated server trips getClientOnlyResponse override point.
//If working with a real server that returns data dynamically based on start/end row, override
//transformResponse instead.
@Override
public DSResponse getClientOnlyResponse(DSRequest request, Record[] serverData) {
DSResponse response = super.getClientOnlyResponse(request, serverData);
int totalRows = response.getTotalRows();
int startRow = response.getStartRow();
int endRow = response.getEndRow();
serverCountLabel.incrementAndUpdate(totalRows, startRow, endRow);
serverCountLabel.setBackgroundColor("ffff77");
new Timer() {
public void run() {
serverCountLabel.setBackgroundColor("ffffff");
}
}.schedule(500);
return response;
}
};
//when working with a server that dynamically returns the response based on start row, end row,
//use can override transformResponse instead of getClientOnlyResponse
/*
@Override
protected void transformResponse(DSResponse response, DSRequest request, Object data) {
int totalRows = response.getTotalRows();
int startRow = response.getStartRow();
int endRow = response.getEndRow();
serverCountLabel.incrementAndUpdate(totalRows, startRow, endRow);
serverCountLabel.setBackgroundColor("ffff77");
new Timer() {
public void run() {
serverCountLabel.setBackgroundColor("ffffff");
}
}.schedule(500);
}*/
final ListGrid supplyItemGrid = new ListGrid();
supplyItemGrid.setWidth(500);
supplyItemGrid.setHeight(300);
supplyItemGrid.setAutoFetchData(true);
supplyItemGrid.setShowFilterEditor(true);
supplyItemGrid.setFilterOnKeypress(true);
supplyItemGrid.setFetchDelay(500);
supplyItemGrid.setDataSource(supplyXmlDS);
ListGridField skuField = new ListGridField("SKU", 100);
ListGridField nameField = new ListGridField("itemName", 150);
ListGridField descriptionField = new ListGridField("description", 250);
ListGridField categoryField = new ListGridField("category", 100);
supplyItemGrid.setFields(skuField, nameField, descriptionField, categoryField );
canvas.addChild(supplyItemGrid);
canvas.addChild(serverCountLabel);
return canvas;
}