com.webmethods.caf.faces.data.object
Class PageableTableContentProvider

java.lang.Object
  extended by com.webmethods.caf.faces.bean.PageFlowScopeAdapter
      extended by com.webmethods.caf.faces.data.object.ListTableContentProvider
          extended by com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
              extended by com.webmethods.caf.faces.data.object.PageableTableContentProvider
All Implemented Interfaces:
IPageFlowScopeAdapter, IAddressableTableContentProvider, IContentProvider, IPageableTableContentProvider, IRefreshable, IRefreshableContentProvider, IReorderableTableContentProvider, ISelectableTableContentProvider, ISortableTableContentProvider, ITableContentProvider, IUpdateableContentProvider, IUpdateableTableContentProvider, Serializable
Direct Known Subclasses:
PortalContainerModel, TaskIndexedSearchContentProvider

public class PageableTableContentProvider
extends SelectableListTableContentProvider
implements IPageableTableContentProvider

Table content provider that allows paging using a secondary page service.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
SelectableListTableContentProvider.Row, SelectableListTableContentProvider.RowComparator
 
Field Summary
protected  Object[] array
           
protected  boolean arraySet
           
protected  List list
           
protected  boolean listSet
           
protected  int pageRowIndex
           
protected  MethodBinding refreshPageBinding
           
protected  List rowCache
           
protected  int rowCount
           
protected  ITableContentProvider table
           
protected  boolean tableSet
           
 
Fields inherited from class com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
m_autoIdCounter, m_map, m_originalList, m_selectableHelper
 
Fields inherited from class com.webmethods.caf.faces.data.object.ListTableContentProvider
m_array, m_canTemplateRow, m_index, m_list, m_onCreateRow, m_onDeleteRow, m_rowId, m_rowType, m_sort, m_templateRow, m_var
 
Fields inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
fExpireWithPageFlow
 
Constructor Summary
PageableTableContentProvider()
           
PageableTableContentProvider(ITableContentProvider table)
           
PageableTableContentProvider(ITableContentProvider table, String rowIdBinding)
           
PageableTableContentProvider(ITableContentProvider table, String rowIdBinding, String rowVariable)
           
PageableTableContentProvider(ITableContentProvider table, ValueBinding rowIdBinding)
           
PageableTableContentProvider(List list)
           
PageableTableContentProvider(List list, String rowIdBinding)
           
PageableTableContentProvider(List list, String rowIdBinding, String rowVariable)
           
PageableTableContentProvider(List list, ValueBinding rowIdBinding)
           
PageableTableContentProvider(Object[] array)
           
PageableTableContentProvider(Object[] array, String rowIdBinding)
           
PageableTableContentProvider(Object[] array, String rowIdBinding, String rowVariable)
           
PageableTableContentProvider(Object[] array, ValueBinding rowIdBinding)
           
 
Method Summary
 Object[] getArray()
          Returns (a copy of the) array previously set as the source
 List getList()
          Returns wrapped list object
 int getPageRowIndex()
          Page starting row index.
 MethodBinding getRefreshPageBinding()
          Parameterless method that refreshes page data service
 int getRowCount()
          Return number of rows in this virtual table.
 ITableContentProvider getTable()
          Return table provider for page data.
 boolean isRowAvailable()
          When row is not loaded and row count is not known or row index is less than known row count, call the paging service and load the data.
protected  void loadPageData()
          Loads current page data into inernal cache
 void refresh()
          Resets internal cache, rowCount and pageRowIndex.
protected  void refreshPage()
          Refreshes the associated page data provider.
 void setArray(Object[] array)
          Creates a list object out of source array and sets it as the source
 void setList(List list)
          Sets a list to wrap
 void setPageRowIndex(int row)
          Sets the page starting row index.
 void setRefreshPageBinding(MethodBinding refreshPageDataBinding)
           
 void setRowCount(int rowCount)
          Allow paging service to set known row count.
 void setTable(ITableContentProvider tableProvider)
          Sets external ITableContentProvider instance to use for page data
 
Methods inherited from class com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
createRow, deleteRow, getCurrentRow, getNeedRefresh, getRowId, getRowSelectedCount, getRowSelectedIds, getRowUnselectedIds, getSelectedRows, getUseUnselectedModel, isAddressable, isAutoRefresh, isRowSelected, moveTo, setAutoRefresh, setCurrentRow, setNeedRefresh, setRowById, setRowSelected, setRowSelectedIds, setRowUnselectedIds, setRowVariable, setTemplateRow, sort, supportsAutoRefresh, updateOriginalList
 
Methods inherited from class com.webmethods.caf.faces.data.object.ListTableContentProvider
calculateRowId, calculateRowId, getCanTemplateRow, getOnCreateRow, getOnDeleteRow, getPropertyKeys, getRowIdBinding, getRowIndex, getRowType, getRowVariable, getSort, getType, getValue, hasProperty, isReadOnly, isReorderable, isTemplateRow, newRow, setCanTemplateRow, setOnCreateRow, setOnDeleteRow, setRowId, setRowIdBinding, setRowIndex, setRowType, setSort, setValue, toString
 
Methods inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
getExpireWithPageFlow, setExpireWithPageFlow
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.webmethods.caf.faces.data.ITableContentProvider
getCurrentRow, getRowIndex, getRowVariable, setRowIndex, setRowVariable
 
Methods inherited from interface com.webmethods.caf.faces.data.IContentProvider
getPropertyKeys, getType, getValue, hasProperty, toString
 

Field Detail

pageRowIndex

protected int pageRowIndex

rowCache

protected List rowCache

rowCount

protected int rowCount

table

protected ITableContentProvider table

tableSet

protected boolean tableSet

list

protected List list

listSet

protected boolean listSet

array

protected Object[] array

arraySet

protected boolean arraySet

refreshPageBinding

protected MethodBinding refreshPageBinding
Constructor Detail

PageableTableContentProvider

public PageableTableContentProvider()

PageableTableContentProvider

public PageableTableContentProvider(Object[] array)

PageableTableContentProvider

public PageableTableContentProvider(List list)

PageableTableContentProvider

public PageableTableContentProvider(ITableContentProvider table)

PageableTableContentProvider

public PageableTableContentProvider(List list,
                                    String rowIdBinding,
                                    String rowVariable)

PageableTableContentProvider

public PageableTableContentProvider(List list,
                                    String rowIdBinding)

PageableTableContentProvider

public PageableTableContentProvider(List list,
                                    ValueBinding rowIdBinding)

PageableTableContentProvider

public PageableTableContentProvider(Object[] array,
                                    String rowIdBinding,
                                    String rowVariable)

PageableTableContentProvider

public PageableTableContentProvider(Object[] array,
                                    String rowIdBinding)

PageableTableContentProvider

public PageableTableContentProvider(Object[] array,
                                    ValueBinding rowIdBinding)

PageableTableContentProvider

public PageableTableContentProvider(ITableContentProvider table,
                                    String rowIdBinding,
                                    String rowVariable)

PageableTableContentProvider

public PageableTableContentProvider(ITableContentProvider table,
                                    String rowIdBinding)

PageableTableContentProvider

public PageableTableContentProvider(ITableContentProvider table,
                                    ValueBinding rowIdBinding)
Method Detail

getRefreshPageBinding

public MethodBinding getRefreshPageBinding()
Parameterless method that refreshes page data service

Returns:
method binding to the refresh method impl.

setRefreshPageBinding

public void setRefreshPageBinding(MethodBinding refreshPageDataBinding)

setPageRowIndex

public void setPageRowIndex(int row)
Description copied from interface: IPageableTableContentProvider
Sets the page starting row index.

Specified by:
setPageRowIndex in interface IPageableTableContentProvider
Parameters:
row - row index
See Also:
PageableTableContentProvider.getPageRowIndex()

getPageRowIndex

public int getPageRowIndex()
Page starting row index. Should be bound to the table control first property and used as an input parameter to the page service provider.

Specified by:
getPageRowIndex in interface IPageableTableContentProvider
Returns:
row index

getRowCount

public int getRowCount()
Return number of rows in this virtual table. Not all rows can be loaded. Can be -1 if unknown. The number of rows becomes known when paging service returns empty set of data of when the client assigns it using PageableTableContentProvider.setRowCount(int) method.

Specified by:
getRowCount in interface ITableContentProvider
Overrides:
getRowCount in class ListTableContentProvider
Returns:
-1 if unknown or actual number of rows.
See Also:
DataModel

setRowCount

public void setRowCount(int rowCount)
Allow paging service to set known row count. Setting -1 will force the provider to call the service until it gets empty set of data.

Parameters:
rowCount - known row count or -1 if unknown

refresh

public void refresh()
Resets internal cache, rowCount and pageRowIndex. This will force the provider to call the paging service again when the client control requests first row.

Specified by:
refresh in interface IRefreshable
Overrides:
refresh in class SelectableListTableContentProvider

isRowAvailable

public boolean isRowAvailable()
When row is not loaded and row count is not known or row index is less than known row count, call the paging service and load the data.

Specified by:
isRowAvailable in interface ITableContentProvider
Overrides:
isRowAvailable in class ListTableContentProvider
Returns:
true if row is already loaded and just loaded after the paging service call
See Also:
DataModel

refreshPage

protected void refreshPage()
Refreshes the associated page data provider. The typical implementation is to assign paging service input parameters based on pageRowIndex, call the service and reassign return data back. Return data may be array, list or table provider and may define rowCount as well. Default implemention calls PageableTableContentProvider.getRefreshPageBinding() method if not null


loadPageData

protected void loadPageData()
Loads current page data into inernal cache


getTable

public ITableContentProvider getTable()
Return table provider for page data. Will be this if PageableTableContentProvider.setList(List) or {@link #setArray(Object[]) is set.

Returns:
ITableContentProvider for specified page

setTable

public void setTable(ITableContentProvider tableProvider)
Sets external ITableContentProvider instance to use for page data

Parameters:
tableProvider - table provider

getArray

public Object[] getArray()
Description copied from class: ListTableContentProvider
Returns (a copy of the) array previously set as the source

Overrides:
getArray in class ListTableContentProvider
Returns:
null if array was not set

getList

public List getList()
Description copied from class: SelectableListTableContentProvider
Returns wrapped list object

Overrides:
getList in class SelectableListTableContentProvider
Returns:
null if not set

setArray

public void setArray(Object[] array)
Description copied from class: ListTableContentProvider
Creates a list object out of source array and sets it as the source

Overrides:
setArray in class ListTableContentProvider
Parameters:
array - the array of objects

setList

public void setList(List list)
Description copied from class: SelectableListTableContentProvider
Sets a list to wrap

Overrides:
setList in class SelectableListTableContentProvider
Parameters:
list - a list