|
GWT 2.7.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.google.gwt.view.client.AbstractDataProvider<T> com.google.gwt.view.client.AsyncDataProvider<T>
T
- the data type of records in the listpublic abstract class AsyncDataProvider<T>
An implementation of AbstractDataProvider
that allows the data to be
modified.
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 | |
---|---|
protected |
AsyncDataProvider()
Constructs an AsyncDataProvider without a key provider. |
protected |
AsyncDataProvider(ProvidesKey<T> keyProvider)
Constructs an AsyncDataProvider with the given key provider. |
Method Summary | |
---|---|
void |
updateRowCount(int size,
boolean exact)
Inform the displays of the total number of items that are available. |
void |
updateRowData(int start,
java.util.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 |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected AsyncDataProvider()
protected AsyncDataProvider(ProvidesKey<T> keyProvider)
keyProvider
- an instance of ProvidesKeyMethod Detail |
---|
public void updateRowCount(int size, boolean exact)
AbstractDataProvider
updateRowCount
in class AbstractDataProvider<T>
size
- the new total row countexact
- true if the count is exact, false if it is an estimatepublic void updateRowData(int start, java.util.List<T> values)
AbstractDataProvider
updateRowData
in class AbstractDataProvider<T>
start
- the start indexvalues
- the data values
|
GWT 2.7.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |