org.cruxframework.crux.core.client.dataprovider
Class AsyncPagedDataProvider<T>

java.lang.Object
  extended by org.cruxframework.crux.core.client.dataprovider.AsyncPagedDataProvider<T>
All Implemented Interfaces:
AsyncDataProvider<T>, DataProvider<T>, MeasurableAsyncDataProvider<T>, MeasurableDataProvider<T>, MeasurablePagedDataProvider<T>, PagedDataProvider<T>

public abstract class AsyncPagedDataProvider<T>
extends Object
implements MeasurableAsyncDataProvider<T>

Author:
Thiago da Rosa de Bustamante

Field Summary
protected  AsyncDataProviderCallback asynchronousCallback
           
protected  int currentPage
           
protected  int currentRecord
           
protected  DataProviderRecord<T>[] data
           
protected  boolean loaded
           
protected  org.cruxframework.crux.core.client.dataprovider.DataProviderOperations<T> operations
           
protected  PagedDataProviderCallback pagedCallback
           
protected  int pageSize
           
protected  int recordCount
           
 
Constructor Summary
AsyncPagedDataProvider()
           
 
Method Summary
 void cancelFetching()
           
protected  void checkChanges()
           
 void clearChanges()
          Undo all changes
protected  AsyncDataProviderEvent<T> createAsynchronousDataProviderEvent(int startRecord, int endRecord)
           
protected  MeasurableAsyncDataProviderEvent<T> createMeasurableDataProviderEvent()
           
protected  void ensureLoaded()
           
protected  void ensurePageLoaded(int recordNumber)
           
protected  void fetchCurrentPage()
           
 void firstRecord()
          Points DataProvider to first record
 T getBoundObject()
          Return a copy of the current record object.
 int getCurrentPage()
           
 int getCurrentPageSize()
           
 int getIndex(T boundObject)
          Retrieve the index of the given object
 DataProviderRecord<T>[] getNewRecords()
          Return all records inserted on DataProvider
 int getPageCount()
           
protected  int getPageEndRecord()
           
protected  int getPageForRecord(int recordNumber)
           
 int getPageSize()
           
protected  int getPageStartRecord()
           
 DataProviderRecord<T> getRecord()
          Return the DataProviderRecord object, representing the current record
 int getRecordCount()
           
 DataProviderRecord<T>[] getRemovedRecords()
          Return all records removed from DataProvider
 DataProviderRecord<T>[] getSelectedRecords()
          Return all records selected on DataProvider
 DataProviderRecord<T>[] getUpdatedRecords()
          Return all records modified on DataProvider
 boolean hasNextPage()
           
 boolean hasNextRecord()
          Verify if DataProvider has more records.
 boolean hasPreviousPage()
           
 boolean hasPreviousRecord()
          Verify if DataProvider has previous records.
 DataProviderRecord<T> insertRecord(int index)
          Insert a new record on DataProvider
protected  boolean isPageLoaded(int pageNumber)
           
protected  boolean isRecordOnPage(int record)
           
 void lastRecord()
           
 boolean nextPage()
           
 void nextRecord()
          Points DataProvider to next record
 boolean previousPage()
           
 void previousRecord()
          Points DataProvider to previous record
 DataProviderRecord<T> removeRecord(int index)
          Remove a record from DataProvider
 void reset()
          Reset DataProvider, as if it was never loaded before.
 void selectRecord(int index, boolean selected)
          Mark the given record as selected
 void setCallback(AsyncDataProviderCallback callback)
           
 void setCallback(PagedDataProviderCallback callback)
           
 boolean setCurrentPage(int pageNumber)
           
 void setPageSize(int pageSize)
           
 void setRecordCount(int recordCount)
           
 void sort(Comparator<T> comparator)
          Sort DataProvider records, based on column informed
protected  void sortArray(DataProviderRecord<T>[] array, Comparator<T> comparator)
           
protected  void update(DataProviderRecord<T>[] records)
           
protected  void updateCurrentRecord()
           
 void updateData(Array<T> data)
          Method called to bind some data to the DataProvider
 void updateData(List<T> data)
          Method called to bind some data to the DataProvider
 void updateData(T[] data)
          Method called to bind some data to the DataProvider
protected  int updateRecords(int startRecord, int endRecord, DataProviderRecord<T>[] records)
           
 void updateState(DataProviderRecord<T> record, DataProviderRecord.DataProviderRecordState previousState)
          Update a record on DataProvider
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.cruxframework.crux.core.client.dataprovider.MeasurableAsyncDataProvider
initialize
 
Methods inherited from interface org.cruxframework.crux.core.client.dataprovider.MeasurablePagedDataProvider
getPageCount
 
Methods inherited from interface org.cruxframework.crux.core.client.dataprovider.AsyncDataProvider
fetch
 
Methods inherited from interface org.cruxframework.crux.core.client.dataprovider.PagedDataProvider
getCurrentPage, getCurrentPageSize, getPageSize, hasNextPage, hasPreviousPage
 
Methods inherited from interface org.cruxframework.crux.core.client.dataprovider.DataProvider
getBoundObject, getRecord, hasNextRecord, hasPreviousRecord, nextRecord, previousRecord, updateData, updateData, updateData
 

Field Detail

operations

protected org.cruxframework.crux.core.client.dataprovider.DataProviderOperations<T> operations

asynchronousCallback

protected AsyncDataProviderCallback asynchronousCallback

pagedCallback

protected PagedDataProviderCallback pagedCallback

recordCount

protected int recordCount

pageSize

protected int pageSize

currentPage

protected int currentPage

data

protected DataProviderRecord<T>[] data

currentRecord

protected int currentRecord

loaded

protected boolean loaded
Constructor Detail

AsyncPagedDataProvider

public AsyncPagedDataProvider()
Method Detail

cancelFetching

public void cancelFetching()
Specified by:
cancelFetching in interface AsyncDataProvider<T>

clearChanges

public void clearChanges()
Description copied from interface: DataProvider
Undo all changes

Specified by:
clearChanges in interface DataProvider<T>

firstRecord

public void firstRecord()
Description copied from interface: DataProvider
Points DataProvider to first record

Specified by:
firstRecord in interface DataProvider<T>

getNewRecords

public DataProviderRecord<T>[] getNewRecords()
Description copied from interface: DataProvider
Return all records inserted on DataProvider

Specified by:
getNewRecords in interface DataProvider<T>
Returns:
all new records

getRecordCount

public int getRecordCount()
Specified by:
getRecordCount in interface MeasurableDataProvider<T>

getRemovedRecords

public DataProviderRecord<T>[] getRemovedRecords()
Description copied from interface: DataProvider
Return all records removed from DataProvider

Specified by:
getRemovedRecords in interface DataProvider<T>
Returns:
all removed records

getSelectedRecords

public DataProviderRecord<T>[] getSelectedRecords()
Description copied from interface: DataProvider
Return all records selected on DataProvider

Specified by:
getSelectedRecords in interface DataProvider<T>
Returns:
all selected records

getUpdatedRecords

public DataProviderRecord<T>[] getUpdatedRecords()
Description copied from interface: DataProvider
Return all records modified on DataProvider

Specified by:
getUpdatedRecords in interface DataProvider<T>
Returns:
all modified records

insertRecord

public DataProviderRecord<T> insertRecord(int index)
Description copied from interface: DataProvider
Insert a new record on DataProvider

Specified by:
insertRecord in interface DataProvider<T>
Returns:

lastRecord

public void lastRecord()
Specified by:
lastRecord in interface MeasurableDataProvider<T>

nextPage

public boolean nextPage()
Specified by:
nextPage in interface PagedDataProvider<T>

previousPage

public boolean previousPage()
Specified by:
previousPage in interface PagedDataProvider<T>

removeRecord

public DataProviderRecord<T> removeRecord(int index)
Description copied from interface: DataProvider
Remove a record from DataProvider

Specified by:
removeRecord in interface DataProvider<T>
Returns:

reset

public void reset()
Description copied from interface: DataProvider
Reset DataProvider, as if it was never loaded before.

Specified by:
reset in interface DataProvider<T>

setCallback

public void setCallback(AsyncDataProviderCallback callback)
Specified by:
setCallback in interface AsyncDataProvider<T>

setCallback

public void setCallback(PagedDataProviderCallback callback)
Specified by:
setCallback in interface PagedDataProvider<T>

setCurrentPage

public boolean setCurrentPage(int pageNumber)
Specified by:
setCurrentPage in interface MeasurablePagedDataProvider<T>

setRecordCount

public void setRecordCount(int recordCount)
Specified by:
setRecordCount in interface MeasurableAsyncDataProvider<T>

setPageSize

public void setPageSize(int pageSize)
Specified by:
setPageSize in interface PagedDataProvider<T>

sort

public void sort(Comparator<T> comparator)
Description copied from interface: DataProvider
Sort DataProvider records, based on column informed

Specified by:
sort in interface DataProvider<T>
Parameters:
comparator - Comparator used for sorting.

getIndex

public int getIndex(T boundObject)
Description copied from interface: DataProvider
Retrieve the index of the given object

Specified by:
getIndex in interface DataProvider<T>
Returns:

selectRecord

public void selectRecord(int index,
                         boolean selected)
Description copied from interface: DataProvider
Mark the given record as selected

Specified by:
selectRecord in interface DataProvider<T>

updateState

public void updateState(DataProviderRecord<T> record,
                        DataProviderRecord.DataProviderRecordState previousState)
Description copied from interface: DataProvider
Update a record on DataProvider

Specified by:
updateState in interface DataProvider<T>

update

protected void update(DataProviderRecord<T>[] records)

ensurePageLoaded

protected void ensurePageLoaded(int recordNumber)

fetchCurrentPage

protected void fetchCurrentPage()

getPageEndRecord

protected int getPageEndRecord()

getPageForRecord

protected int getPageForRecord(int recordNumber)

isPageLoaded

protected boolean isPageLoaded(int pageNumber)

updateRecords

protected int updateRecords(int startRecord,
                            int endRecord,
                            DataProviderRecord<T>[] records)
Parameters:
startRecord -
endRecord -
records -
Returns:

checkChanges

protected void checkChanges()

createAsynchronousDataProviderEvent

protected AsyncDataProviderEvent<T> createAsynchronousDataProviderEvent(int startRecord,
                                                                        int endRecord)

createMeasurableDataProviderEvent

protected MeasurableAsyncDataProviderEvent<T> createMeasurableDataProviderEvent()

getCurrentPage

public int getCurrentPage()
Specified by:
getCurrentPage in interface PagedDataProvider<E>

getPageCount

public int getPageCount()
Specified by:
getPageCount in interface MeasurablePagedDataProvider<E>

getPageSize

public int getPageSize()
Specified by:
getPageSize in interface PagedDataProvider<E>

getCurrentPageSize

public int getCurrentPageSize()
Specified by:
getCurrentPageSize in interface PagedDataProvider<E>

hasNextPage

public boolean hasNextPage()
Specified by:
hasNextPage in interface PagedDataProvider<E>

hasPreviousPage

public boolean hasPreviousPage()
Specified by:
hasPreviousPage in interface PagedDataProvider<E>

hasNextRecord

public boolean hasNextRecord()
Description copied from interface: DataProvider
Verify if DataProvider has more records.

Specified by:
hasNextRecord in interface DataProvider<E>
Returns:
true if more records exist.

hasPreviousRecord

public boolean hasPreviousRecord()
Description copied from interface: DataProvider
Verify if DataProvider has previous records.

Specified by:
hasPreviousRecord in interface DataProvider<E>
Returns:
true if previous records exist.

isRecordOnPage

protected boolean isRecordOnPage(int record)

getPageStartRecord

protected int getPageStartRecord()

updateCurrentRecord

protected void updateCurrentRecord()

nextRecord

public void nextRecord()
Description copied from interface: DataProvider
Points DataProvider to next record

Specified by:
nextRecord in interface DataProvider<T>

getRecord

public DataProviderRecord<T> getRecord()
Description copied from interface: DataProvider
Return the DataProviderRecord object, representing the current record

Specified by:
getRecord in interface DataProvider<T>
Returns:
current DataProviderRecord object.

previousRecord

public void previousRecord()
Description copied from interface: DataProvider
Points DataProvider to previous record

Specified by:
previousRecord in interface DataProvider<T>

getBoundObject

public T getBoundObject()
Description copied from interface: DataProvider
Return a copy of the current record object.

Specified by:
getBoundObject in interface DataProvider<T>
Returns:

updateData

public void updateData(T[] data)
Description copied from interface: DataProvider
Method called to bind some data to the DataProvider

Specified by:
updateData in interface DataProvider<T>

updateData

public void updateData(List<T> data)
Description copied from interface: DataProvider
Method called to bind some data to the DataProvider

Specified by:
updateData in interface DataProvider<T>

updateData

public void updateData(Array<T> data)
Description copied from interface: DataProvider
Method called to bind some data to the DataProvider

Specified by:
updateData in interface DataProvider<T>

ensureLoaded

protected void ensureLoaded()

sortArray

protected void sortArray(DataProviderRecord<T>[] array,
                         Comparator<T> comparator)


Copyright © 2014. All rights reserved.