public abstract class AbstractPagedCollection<E,F> extends java.lang.Object implements java.util.List<E>, Component, org.granite.client.util.PropertyHolder, NameAware, ContextAware, Initializable, TideEventObserver
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractPagedCollection.PagedCollectionIterator |
| Modifier and Type | Field and Description |
|---|---|
protected int |
count |
protected boolean |
filterRefresh |
protected int |
first |
protected boolean |
fullRefresh |
protected boolean |
initializing |
protected int |
last |
protected int |
max |
protected SortAdapter |
sortAdapter |
| Constructor and Description |
|---|
AbstractPagedCollection() |
AbstractPagedCollection(Component remoteComponent,
PageFilterFinder<E> finder,
int maxResults) |
AbstractPagedCollection(Component remoteComponent,
SimpleFilterFinder<E> finder,
int maxResults) |
AbstractPagedCollection(Component remoteComponent,
java.lang.String methodName,
int maxResults) |
AbstractPagedCollection(ServerSession serverSession) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E e) |
void |
add(int index,
E element) |
boolean |
addAll(java.util.Collection<? extends E> c) |
boolean |
addAll(int index,
java.util.Collection<? extends E> c) |
<T> java.util.concurrent.Future<T> |
call(java.lang.String operation,
java.lang.Object... args)
Call a remote operation on the component
|
void |
clear()
Clear collection content
|
protected abstract java.lang.Object |
cloneFilter() |
boolean |
contains(java.lang.Object o) |
boolean |
containsAll(java.util.Collection<?> c) |
protected java.util.concurrent.Future<?> |
doFind(java.lang.Object filter,
int first,
int max) |
protected java.util.concurrent.Future<?> |
find(int first,
int last)
Trigger a results query for the current filter
|
protected void |
findFault(TideFaultEvent event,
int first,
int max)
Event handler for results fault
|
protected void |
findResult(TideResultEvent<?> event,
int first,
int max)
Event handler for results query
|
protected abstract void |
firePageChange(TideRpcEvent event,
int previousFirst,
int previousLast,
java.util.List<E> savedSnapshot)
Notify listeners of remote page result
|
boolean |
fullRefresh()
Force refresh of collection when filter/sort have been changed
|
E |
get(int index)
Override of get() with lazy page loading
|
java.lang.Class<? extends E> |
getElementClass() |
abstract F |
getFilter() |
protected abstract java.util.List<E> |
getInternalWrappedList() |
java.lang.String |
getName()
Component name
|
java.lang.Object |
getObject()
PropertyHolder interface
|
protected org.granite.tide.data.model.Page<E> |
getResult(TideResultEvent<?> event,
int first,
int max)
Build a result object from the result event
|
SortAdapter |
getSortAdapter() |
protected abstract java.util.List<E> |
getWrappedList() |
void |
handleEvent(TideEvent event) |
protected void |
handleFault(TideFaultEvent event,
int first,
int max)
Event handler for results query fault
|
protected void |
handleResult(org.granite.tide.data.model.Page<E> page,
TideResultEvent<?> event,
int first,
int max)
Event handler for results query
|
int |
indexOf(java.lang.Object o) |
void |
init() |
protected abstract void |
initFilter() |
protected void |
initialize(TideResultEvent<?> event)
Initialize collection after first find
|
boolean |
isEmpty() |
java.util.Iterator<E> |
iterator() |
int |
lastIndexOf(java.lang.Object o) |
java.util.ListIterator<E> |
listIterator() |
java.util.ListIterator<E> |
listIterator(int index) |
boolean |
refresh()
Refresh collection with new filter/sort parameters
|
E |
remove(int index) |
boolean |
remove(java.lang.Object o) |
boolean |
removeAll(java.util.Collection<?> c) |
void |
reset() |
void |
resetFilter() |
void |
resetSort() |
boolean |
retainAll(java.util.Collection<?> c) |
E |
set(int index,
E element) |
void |
setCancelPendingCalls(boolean cancel) |
void |
setContext(Context context) |
void |
setElementClass(java.lang.Class<? extends E> elementClass) |
abstract void |
setFilter(F filter) |
void |
setFilterClass(java.lang.Class<F> filterClass) |
void |
setMaxResults(int max)
Set the page size.
|
void |
setMethodName(java.lang.String methodName) |
void |
setName(java.lang.String componentName)
Set the name of this object in its owning context
|
void |
setPageFilterFinder(PageFilterFinder<E> finder) |
void |
setProperty(java.lang.String propName,
java.lang.Object value) |
void |
setRemoteComponent(Component remoteComponent) |
void |
setRemoteComponentClass(java.lang.Class<? extends Component> remoteComponentClass) |
void |
setRemoteComponentName(java.lang.String remoteComponentName) |
void |
setSimpleFilterFinder(SimpleFilterFinder<E> finder) |
void |
setSortAdapter(SortAdapter sortAdapter) |
void |
setUsePage(boolean usePage) |
int |
size()
Get total number of elements
|
java.util.List<E> |
subList(int fromIndex,
int toIndex) |
protected void |
updateCount(int cnt) |
protected SortAdapter sortAdapter
protected boolean initializing
protected int first
protected int last
protected int max
protected int count
protected boolean fullRefresh
protected boolean filterRefresh
public AbstractPagedCollection()
public AbstractPagedCollection(ServerSession serverSession)
public AbstractPagedCollection(Component remoteComponent, java.lang.String methodName, int maxResults)
public AbstractPagedCollection(Component remoteComponent, PageFilterFinder<E> finder, int maxResults)
public AbstractPagedCollection(Component remoteComponent, SimpleFilterFinder<E> finder, int maxResults)
protected abstract void initFilter()
public int size()
protected void updateCount(int cnt)
public void setMaxResults(int max)
max - maximum number of requested elementspublic void setElementClass(java.lang.Class<? extends E> elementClass)
public java.lang.Class<? extends E> getElementClass()
public void setCancelPendingCalls(boolean cancel)
public void setName(java.lang.String componentName)
NameAwarepublic void setContext(Context context)
setContext in interface ContextAwarepublic java.lang.String getName()
Componentpublic void setRemoteComponentName(java.lang.String remoteComponentName)
public void setRemoteComponentClass(java.lang.Class<? extends Component> remoteComponentClass) throws java.lang.IllegalAccessException, java.lang.InstantiationException
java.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionpublic void setRemoteComponent(Component remoteComponent)
public void setMethodName(java.lang.String methodName)
public void setPageFilterFinder(PageFilterFinder<E> finder)
public void setSimpleFilterFinder(SimpleFilterFinder<E> finder)
public void setUsePage(boolean usePage)
public void init()
init in interface Initializablepublic void setSortAdapter(SortAdapter sortAdapter)
public SortAdapter getSortAdapter()
public void resetSort()
public void setFilterClass(java.lang.Class<F> filterClass) throws java.lang.IllegalAccessException, java.lang.InstantiationException
java.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionpublic void resetFilter()
public abstract void setFilter(F filter)
public void reset()
public void handleEvent(TideEvent event)
handleEvent in interface TideEventObserver@PreDestroy public void clear()
protected java.util.concurrent.Future<?> find(int first,
int last)
first - : index of first required resultlast - : index of last required resultprotected java.util.concurrent.Future<?> doFind(java.lang.Object filter,
int first,
int max)
public abstract F getFilter()
protected abstract java.lang.Object cloneFilter()
protected org.granite.tide.data.model.Page<E> getResult(TideResultEvent<?> event, int first, int max)
event - the result eventfirst - first index requestedmax - max elements requestedpublic boolean fullRefresh()
public boolean refresh()
protected abstract void firePageChange(TideRpcEvent event, int previousFirst, int previousLast, java.util.List<E> savedSnapshot)
event - the remote event (ResultEvent or FaultEvent)previousFirst - index of first element before last updated listpreviousLast - index of last element before last updated listsavedSnapshot - collection snapshot before last changeprotected void initialize(TideResultEvent<?> event)
event - the result event of the first findprotected void findResult(TideResultEvent<?> event, int first, int max)
event - the result eventfirst - first requested indexmax - max elements requestedprotected void handleResult(org.granite.tide.data.model.Page<E> page, TideResultEvent<?> event, int first, int max)
page - the result pageevent - the result eventfirst - first requested indexmax - max elements requestedprotected void findFault(TideFaultEvent event, int first, int max)
event - the fault eventfirst - first requested indexmax - max elements requestedprotected void handleFault(TideFaultEvent event, int first, int max)
event - the fault eventprotected abstract java.util.List<E> getInternalWrappedList()
protected abstract java.util.List<E> getWrappedList()
public E get(int index)
get in interface java.util.List<E>index - index of requested itempublic boolean isEmpty()
public boolean contains(java.lang.Object o)
public boolean containsAll(java.util.Collection<?> c)
public int indexOf(java.lang.Object o)
indexOf in interface java.util.List<E>public int lastIndexOf(java.lang.Object o)
lastIndexOf in interface java.util.List<E>public java.util.Iterator<E> iterator()
public java.util.ListIterator<E> listIterator()
listIterator in interface java.util.List<E>public java.util.ListIterator<E> listIterator(int index)
listIterator in interface java.util.List<E>public boolean add(E e)
public boolean addAll(java.util.Collection<? extends E> c)
public boolean addAll(int index,
java.util.Collection<? extends E> c)
addAll in interface java.util.List<E>public boolean remove(java.lang.Object o)
public boolean removeAll(java.util.Collection<?> c)
public boolean retainAll(java.util.Collection<?> c)
public java.util.List<E> subList(int fromIndex, int toIndex)
subList in interface java.util.List<E>public java.lang.Object getObject()
getObject in interface org.granite.client.util.PropertyHolderpublic void setProperty(java.lang.String propName,
java.lang.Object value)
setProperty in interface org.granite.client.util.PropertyHolderpublic <T> java.util.concurrent.Future<T> call(java.lang.String operation,
java.lang.Object... args)
Component