Package com.google.gwt.view.client
Class AsyncDataProvider<T>
java.lang.Object
com.google.gwt.view.client.AbstractDataProvider<T>
com.google.gwt.view.client.AsyncDataProvider<T>
- Type Parameters:
T
- the data type of records in the list
- All Implemented Interfaces:
ProvidesKey<T>
An implementation of
AbstractDataProvider
that allows the data to be
modified.
Example
public class AsyncDataProviderExample implements EntryPoint { /** * A custom {@link AsyncDataProvider}. */ private static class MyDataProvider extends AsyncDataProvider<String> { /** * {@link #onRangeChanged(HasData)} is called when the table requests a new * range of data. You can push data back to the displays using * {@link #updateRowData(int, List)}. */ @Override protected void onRangeChanged(HasData<String> display) { // Get the new range. final Range range = display.getVisibleRange(); /* * Query the data asynchronously. If you are using a database, you can * make an RPC call here. We'll use a Timer to simulate a delay. */ new Timer() { @Override public void run() { // We are creating fake data. Normally, the data will come from a // server. int start = range.getStart(); int length = range.getLength(); List<String> newData = new ArrayList<String>(); for (int i = start; i < start + length; i++) { newData.add("Item " + i); } // Push the data to the displays. AsyncDataProvider will only update // displays that are within range of the data. updateRowData(start, newData); } }.schedule(3000); } } public void onModuleLoad() { // Create a CellList. CellList<String> cellList = new CellList<String>(new TextCell()); // Create a data provider. MyDataProvider dataProvider = new MyDataProvider(); // Add the cellList to the dataProvider. dataProvider.addDataDisplay(cellList); // Create paging controls. SimplePager pager = new SimplePager(); pager.setDisplay(cellList); // Add the widgets to the root panel. VerticalPanel vPanel = new VerticalPanel(); vPanel.add(pager); vPanel.add(cellList); RootPanel.get().add(vPanel); } }
-
Constructor Summary
ModifierConstructorDescriptionprotected
Constructs an AsyncDataProvider without a key provider.protected
AsyncDataProvider
(ProvidesKey<T> keyProvider) Constructs an AsyncDataProvider with the given key provider. -
Method Summary
Modifier and TypeMethodDescriptionvoid
updateRowCount
(int size, boolean exact) Inform the displays of the total number of items that are available.void
updateRowData
(int start, List<T> values) Inform the displays of the new data.Methods inherited from class com.google.gwt.view.client.AbstractDataProvider
addDataDisplay, getDataDisplays, getKey, getKeyProvider, getRanges, onRangeChanged, removeDataDisplay, updateRowData
-
Constructor Details
-
AsyncDataProvider
protected AsyncDataProvider()Constructs an AsyncDataProvider without a key provider. -
AsyncDataProvider
Constructs an AsyncDataProvider with the given key provider.- Parameters:
keyProvider
- an instance of ProvidesKey, or null if the record object should act as its own key
-
-
Method Details
-
updateRowCount
public void updateRowCount(int size, boolean exact) Description copied from class:AbstractDataProvider
Inform the displays of the total number of items that are available.- Overrides:
updateRowCount
in classAbstractDataProvider<T>
- Parameters:
size
- the new total row countexact
- true if the count is exact, false if it is an estimate
-
updateRowData
Description copied from class:AbstractDataProvider
Inform the displays of the new data.- Overrides:
updateRowData
in classAbstractDataProvider<T>
- Parameters:
start
- the start indexvalues
- the data values
-