Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Description

ListGrid displays a list of objects in a grid, where each row represents one object and each cell in the row represents one property.

...

For transparent loading of the data the fetchData method should be used.

Code Block
languagejava
titleUpdate by DataSource
linenumberstrue
private void onRefresh() {
    DataSource dataSource = listGrid.getDataSource();
    Criteria criteria = listGrid.getCriteria();

    Integer[] visibleRows = listGrid.getVisibleRows();
    
	// request one page's worth of data on either side of the current viewport
    Integer startRow = visibleRows[0] - listGrid.getResultSet().getResultSize();
    Integer endRow = (visibleRows[1] + listGrid.getResultSet().getResultSize();
    if (startRow < 0) {
        startRow = 0;
    }
    
	DSRequest request = new DSRequest();
    request.setStartRow(startRow);
    request.setEndRow(endRow);
    request.setSortBy(listGrid.getSort());
    
 	dataSource.fetchData(criteria, new DSCallback() {
        @Override
        public void execute(DSResponse response, Object rawData, DSRequest request) {
            DataSource dataSource = listGrid.getDataSource(onRefreshed(response);
        }
    ResultSet resultSet = new ResultSet(dataSource}, request);
}

private void onRefreshed(DSResponse response) {
    
	DataSource dataSource = listGrid.getDataSource();
    ResultSet resultSet = new ResultSet(dataSource);
    resultSet.setInitialLength(response.getTotalRows());
    
	// correctly position the result in the resultset's cache 
    Record[] result = resultSet.setInitialData(response.getData());
    Record[] initialData =      resultSet.setInitialSort(listGrid.getSort())new Record[response.getTotalRows()];
    System.arraycopy(result, 0, initialData, response.getStartRow(), result.length);
    listGridresultSet.setDatasetInitialData(resultSetinitialData);
    
	resultSet.setInitialSort(listGrid.getSort());
   }
 resultSet.setCriteria(listGrid.getCriteria());
    }, requestlistGrid.setData(resultSet);
}

Attachments

Attachments