com.webmethods.caf.faces.data.tree.object
Class LazyNodeTreeContentProvider

java.lang.Object
  extended by com.webmethods.caf.faces.bean.PageFlowScopeAdapter
      extended by com.webmethods.caf.faces.data.tree.object.LazyNodeTreeContentProvider
All Implemented Interfaces:
IPageFlowScopeAdapter, IAddressableTableContentProvider, IContentProvider, IFilterableTableContentProvider, IRefreshable, IRefreshableContentProvider, ISelectableTableContentProvider, ISortableTableContentProvider, ITableContentProvider, ISelectableTreeContentProvider, ITreeContentProvider
Direct Known Subclasses:
FilterableListTreeContentProvider

public class LazyNodeTreeContentProvider
extends PageFlowScopeAdapter
implements ISelectableTreeContentProvider, IRefreshableContentProvider, ISortableTableContentProvider, IFilterableTableContentProvider

Tree provider backed by a list of INode roots, optimized for asynchronous usage.


Nested Class Summary
protected  class LazyNodeTreeContentProvider.BreadthFirstTreeWalker
          Iterates over the tree in breadth-first order, returning INodes.
protected  class LazyNodeTreeContentProvider.DepthFirstTreeWalker
          Iterates over the tree in depth-first order, returning INodes.
protected static class LazyNodeTreeContentProvider.NodeComparator
          Compares two nodes using column sorting info.
protected static class LazyNodeTreeContentProvider.NodeFilterableValueDecorator
          Filter value decorator for wrapped nodes, using a binding expression to calculate the value.
protected static class LazyNodeTreeContentProvider.NodeIdsIterator
          Iterates over a list of INodes, returning each node's id.
protected  class LazyNodeTreeContentProvider.ReverseDepthFirstTreeWalker
          Iterates over the tree in reverse-depth-first order, returning INodes.
 
Field Summary
protected  int m_count
          Current total nodes, or -1 if total unknown.
protected  INode m_current
          Current node.
protected  String m_filter
          Filter expression; null by default (indicating no filter).
protected  boolean m_filterable
          True if this table can filter rows; false by default.
protected  Map m_filteredChildren
          Lazy map of String parent ids to List of filtered INode children.
protected  ValueBinding m_filterValue
          Value binding used to calculate row filter value.
protected  int m_index
          Current index in depth-first order, or -1 if index unknown.
protected  Map m_nodes
          Lazy map of String node ids to INodes.
protected  List m_roots
          List of INode roots.
protected  SelectableTreeContentProviderHelper m_selectableHelper
           
protected  ISortInfo m_sort
          Current sort info.
protected  Map m_sortedChildren
          Lazy map of String parent ids to List of sorted INode children.
protected  TreeContentProviderHelper m_treeHelper
           
protected  String m_var
          Row variable.
protected static ISortInfo NO_SORT
           
 
Fields inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
fExpireWithPageFlow
 
Constructor Summary
LazyNodeTreeContentProvider()
          New tree provider.
LazyNodeTreeContentProvider(INode root)
          New tree provider backed by single INode root.
LazyNodeTreeContentProvider(List list)
          New tree provider backed by a list of INode roots.
 
Method Summary
protected  INode findNodeById(String id)
          Returns node with specified id or null.
 Iterator getChildIds()
          String ids of child rows, in order.
protected  List getChildren(INode parent)
          List children for given parent node id.
 INode getCurrent()
          Current node or null.
 Object getCurrentRow()
           Returns wrapped current row object.
 int getDepth()
          Depth of current row.
 String getFilter()
          Filter expression.
 boolean getHasChildren()
          True if current row has children.
 boolean[] getLastChildAncestors()
          ITreeContentProvider.isLastChild() value of ancestors to the current row, from the root to the current row's parent.
 boolean getNeedRefresh()
          Returns true when IRefreshable.isAutoRefresh() is on and the result properties need to be refreshed from the data source by executing IRefreshable.refresh() method.
 Collection getOpenIds()
          Collection of String ids of open rows.
 String getParentId()
          Id of parent row.
 Object[] getPropertyKeys()
          Returns list of properties supported by this content provider.
 Iterator getRootIds()
          String ids of root rows, in order.
 List getRoots()
          List of INode roots or null.
 int getRowCount()
          Walks tree to determine row count.
 ValueBinding getRowFilterValueBinding()
          Value-binding which calculates the value to filter for the current row.
 String getRowId()
          Returns unique identifier for the current row.
 int getRowIndex()
          Walks tree to determine row index.
 int getRowSelectedCount()
          Returns number of selected rows.
 Collection getRowSelectedIds()
          Returns collection of String ids of the selected rows.
 Collection getRowUnselectedIds()
          Returns collection of String ids of the un-selected rows (all other rows are selected implicitly) May be empty or contain non-existent ids; never null, never contains null.
 String getRowVariable()
           Returns row variable name.
protected  List getSiblings(INode current)
          Lists the sibling INodes of the current node.
 ISortInfo getSort()
          Returns current sort info.
 Class getType(Object propertyKey)
          Returns java type of the given property
 Collection getUnopenIds()
          Collection of String ids of un-open rows (all other rows are open implicitly).
 boolean getUseUnopenModel()
          True if it's more effecient to use the un-open model (ITreeContentProvider.getUnopenIds()) rather than the open model (ITreeContentProvider.getOpenIds()).
 boolean getUseUnselectedModel()
          Returns true if it's more effecient to use unselected model (ie ISelectableTableContentProvider.getRowUnselectedIds() rather than ISelectableTableContentProvider.getRowSelectedIds()).
 Object getValue(Object propertyKey)
          Returns value of the given property
 boolean hasProperty(Object propertyKey)
          Checks if the given property is supported by this content provider
 boolean isAddressable()
          Checks if this content provider truly is addressable.
 boolean isAutoRefresh()
          Returns true if the provider is currenlty in auto-refresh mode
 boolean isFilterable()
          True if this provider truely is filterable.
 boolean isFirstChild()
          True if current row is first child of parent (not whether or not current row is first row in tree).
 boolean isLastChild()
          True if current row is last child of parent (not whether or not current row is last row in tree).
 boolean isOpen()
          True if current row is open.
 boolean isReadOnly(Object propertyKey)
           
 boolean isRowAvailable()
          Return a flag indicating whether there is rowData available at the current rowIndex.
 boolean isRowMixed()
          True if row selection state is mixed.
 boolean isRowSelected()
          Returns true if current row is selected.
 boolean isVisible()
          True if ancestors of current row are all open.
 void refresh()
          (Re)loads data from the data source.
 void setAutoRefresh(boolean autorefresh)
          Sets auto refresh mode on.
 void setCurrent(INode current)
          Current node or null.
 void setFilter(String filter)
          Filter expression.
 void setFilterable(boolean filterable)
          True if this provider truely is filterable.
 void setNeedRefresh(boolean needRefresh)
          Tells the provider that the input parameters have changed and the output results need to be refreshed the next time any output property is requested via IContentProvider.getValue(Object).
 void setOpen(boolean open)
          True if current row is open.
 void setOpenIds(Collection ids)
          Collection of String ids of open rows.
 void setOpenToDepth(int depth)
          Sets tree open to the specified depth.
 void setRoots(List roots)
          List of INode roots or null.
 void setRowById(String id)
          Selects current row by its id.
 void setRowFilterValueBinding(ValueBinding binding)
          Value-binding which calculates the value to filter for the current row.
 void setRowFilterValueBindingAsString(String binding)
          Value-binding (in string form) which calculates the value to filter for the current row.
 void setRowIndex(int rowIndex)
          Walks tree to set row index.
 void setRowSelected(boolean selected)
          Sets the selection status for the current row.
 void setRowSelectedIds(Collection ids)
          Sets new selection using a collection of String ids of the rows to select.
 void setRowUnselectedIds(Collection ids)
          Unselects rows using a collection of String ids of the un-selected rows (all other rows are selected implicitly).
 void setRowVariable(String var)
           Sets row variable name to use for accessing row specific data.
 void setSort(ISortInfo sort)
          Sets new sort info, re-sorting the table (if necessary).
 void setUnopenIds(Collection ids)
          Collection of String ids of un-open rows (all other rows are open implicitly).
 void setValue(Object propertyKey, Object value)
           
 boolean supportsAutoRefresh()
          Returns true if this content provider supports auto refresh feature.
 String toString()
          Returns string representation of content.
 
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
 

Field Detail

NO_SORT

protected static final ISortInfo NO_SORT

m_selectableHelper

protected SelectableTreeContentProviderHelper m_selectableHelper

m_treeHelper

protected TreeContentProviderHelper m_treeHelper

m_roots

protected List m_roots
List of INode roots.


m_current

protected INode m_current
Current node.


m_index

protected int m_index
Current index in depth-first order, or -1 if index unknown.


m_count

protected int m_count
Current total nodes, or -1 if total unknown.


m_var

protected String m_var
Row variable.


m_sort

protected ISortInfo m_sort
Current sort info.


m_sortedChildren

protected Map m_sortedChildren
Lazy map of String parent ids to List of sorted INode children.


m_nodes

protected Map m_nodes
Lazy map of String node ids to INodes.


m_filterable

protected boolean m_filterable
True if this table can filter rows; false by default.


m_filter

protected String m_filter
Filter expression; null by default (indicating no filter).


m_filterValue

protected ValueBinding m_filterValue
Value binding used to calculate row filter value.


m_filteredChildren

protected Map m_filteredChildren
Lazy map of String parent ids to List of filtered INode children.

Constructor Detail

LazyNodeTreeContentProvider

public LazyNodeTreeContentProvider()
New tree provider. List of INode roots must be set via LazyNodeTreeContentProvider.setRoots(java.util.List).


LazyNodeTreeContentProvider

public LazyNodeTreeContentProvider(INode root)
New tree provider backed by single INode root.

Parameters:
root - Single INode root.

LazyNodeTreeContentProvider

public LazyNodeTreeContentProvider(List list)
New tree provider backed by a list of INode roots.

Parameters:
list - List of INode roots.
Method Detail

toString

public String toString()
Description copied from interface: IContentProvider
Returns string representation of content.

Specified by:
toString in interface IContentProvider
Overrides:
toString in class Object
Returns:
String representation of the wrapped content

getPropertyKeys

public Object[] getPropertyKeys()
Description copied from interface: IContentProvider
Returns list of properties supported by this content provider. Can return Object[0], never null.

Specified by:
getPropertyKeys in interface IContentProvider
Returns:
array of property keys which is typically of type String or Integer

getType

public Class getType(Object propertyKey)
              throws PropertyNotFoundException
Description copied from interface: IContentProvider
Returns java type of the given property

Specified by:
getType in interface IContentProvider
Parameters:
propertyKey - the property key of type String or Integer
Returns:
property java Class
Throws:
PropertyNotFoundException - if property is not supported

getValue

public Object getValue(Object propertyKey)
                throws EvaluationException,
                       PropertyNotFoundException
Description copied from interface: IContentProvider
Returns value of the given property

Specified by:
getValue in interface IContentProvider
Parameters:
propertyKey - the property key of type String or Integer
Returns:
value of the property, can be null
Throws:
EvaluationException - if error during property evaluation
PropertyNotFoundException - if property is not supported

hasProperty

public boolean hasProperty(Object propertyKey)
Description copied from interface: IContentProvider
Checks if the given property is supported by this content provider

Specified by:
hasProperty in interface IContentProvider
Parameters:
propertyKey - property key of type String or Integer
Returns:
true if property is supported

isReadOnly

public boolean isReadOnly(Object propertyKey)
                   throws EvaluationException,
                          PropertyNotFoundException
Throws:
EvaluationException
PropertyNotFoundException

setValue

public void setValue(Object propertyKey,
                     Object value)
              throws EvaluationException,
                     PropertyNotFoundException
Throws:
EvaluationException
PropertyNotFoundException

refresh

public void refresh()
Description copied from interface: IRefreshable
(Re)loads data from the data source. Implementation specific meaning can be executing a SQL query or a web service call. All current data will be lost and updated with the new results if successful.

Specified by:
refresh in interface IRefreshable

supportsAutoRefresh

public boolean supportsAutoRefresh()
Description copied from interface: IRefreshable
Returns true if this content provider supports auto refresh feature.

Specified by:
supportsAutoRefresh in interface IRefreshable
Returns:
always return false.
See Also:
IRefreshable.setAutoRefresh(boolean)

setAutoRefresh

public void setAutoRefresh(boolean autorefresh)
                    throws ContentProviderException
Description copied from interface: IRefreshable

Sets auto refresh mode on. When auto refresh mode is on, the provider calls IRefreshable.getNeedRefresh() to determine whether the refresh needs to be done before returning any result properties. If it returns true, the provider calls IRefreshable.refresh() method to updated the result properties.

Specified by:
setAutoRefresh in interface IRefreshable
Parameters:
autorefresh - true to turn it on
Throws:
ContentProviderException - if autorefresh is true because this class doesn't support auto refresh.
See Also:
IRefreshable.supportsAutoRefresh(), IRefreshable.getNeedRefresh(), IRefreshable.setNeedRefresh(boolean)

isAutoRefresh

public boolean isAutoRefresh()
Description copied from interface: IRefreshable
Returns true if the provider is currenlty in auto-refresh mode

Specified by:
isAutoRefresh in interface IRefreshable
Returns:
always return false.

getNeedRefresh

public boolean getNeedRefresh()
Description copied from interface: IRefreshable

Returns true when IRefreshable.isAutoRefresh() is on and the result properties need to be refreshed from the data source by executing IRefreshable.refresh() method.

Implementations may return an accurate value from this method if they can track the changes to the input parameter properties or they may require the clients to call IRefreshable.setNeedRefresh(boolean) explicitely.

Specified by:
getNeedRefresh in interface IRefreshable
Returns:
always return false.

setNeedRefresh

public void setNeedRefresh(boolean needRefresh)
Description copied from interface: IRefreshable
Tells the provider that the input parameters have changed and the output results need to be refreshed the next time any output property is requested via IContentProvider.getValue(Object).

Specified by:
setNeedRefresh in interface IRefreshable
Parameters:
needRefresh - true if the input parameters have changed
Throws:
ContentProviderException - if needRefresh is true because this class doesn't support auto refresh.

isRowAvailable

public boolean isRowAvailable()
Description copied from interface: ITableContentProvider
Return a flag indicating whether there is rowData available at the current rowIndex. If no wrappedData is available, return false.

Specified by:
isRowAvailable in interface ITableContentProvider
Returns:
true if current node is not null.
See Also:
DataModel

getRowCount

public int getRowCount()
Walks tree to determine row count.

Specified by:
getRowCount in interface ITableContentProvider
See Also:
DataModel

getRowIndex

public int getRowIndex()
Walks tree to determine row index.

Specified by:
getRowIndex in interface ITableContentProvider
See Also:
DataModel

setRowIndex

public void setRowIndex(int rowIndex)
Walks tree to set row index.

Specified by:
setRowIndex in interface ITableContentProvider
See Also:
DataModel

getRowVariable

public String getRowVariable()
Description copied from interface: ITableContentProvider

Returns row variable name.

If specified row variable can be used to access current row data for the provider internal needs, like sorting or addressing.

Specified by:
getRowVariable in interface ITableContentProvider
Returns:
row variable name or null if not specified
See Also:
ITableContentProvider.setRowVariable(String)

setRowVariable

public void setRowVariable(String var)
Description copied from interface: ITableContentProvider

Sets row variable name to use for accessing row specific data. For example, if the provider wrapps an array of a data objects with id property and the variable name is item, then the provider implementation can access id property of each record as item.id.

This property should set only once at the provider initialization time

Specified by:
setRowVariable in interface ITableContentProvider

getCurrentRow

public Object getCurrentRow()
Description copied from interface: ITableContentProvider

Returns wrapped current row object. Can be null if not data is available

Specified by:
getCurrentRow in interface ITableContentProvider
Returns:
current row object
See Also:
ITableContentProvider.isRowAvailable()

isAddressable

public boolean isAddressable()
Description copied from interface: IAddressableTableContentProvider
Checks if this content provider truly is addressable.

Specified by:
isAddressable in interface IAddressableTableContentProvider
Returns:
always return true.

getRowId

public String getRowId()
Description copied from interface: IAddressableTableContentProvider
Returns unique identifier for the current row. If no current row is avaiable, returns null.

Specified by:
getRowId in interface IAddressableTableContentProvider
Returns:
current row id or null

setRowById

public void setRowById(String id)
Description copied from interface: IAddressableTableContentProvider
Selects current row by its id. If id doesn't identify a row, makes no row current (equivalent to setRowIndex(-1)).

Specified by:
setRowById in interface IAddressableTableContentProvider
Parameters:
id - row id to find and make current

isRowSelected

public boolean isRowSelected()
Description copied from interface: ISelectableTableContentProvider
Returns true if current row is selected.

Specified by:
isRowSelected in interface ISelectableTableContentProvider
Returns:
true if current row is selection

setRowSelected

public void setRowSelected(boolean selected)
Description copied from interface: ISelectableTableContentProvider
Sets the selection status for the current row.

Specified by:
setRowSelected in interface ISelectableTableContentProvider
Parameters:
selected - true to select current row; false to unselect.

getRowSelectedCount

public int getRowSelectedCount()
Description copied from interface: ISelectableTableContentProvider
Returns number of selected rows.

Specified by:
getRowSelectedCount in interface ISelectableTableContentProvider
Returns:
number of currently selection rows

getRowSelectedIds

public Collection getRowSelectedIds()
Description copied from interface: ISelectableTableContentProvider
Returns collection of String ids of the selected rows. May be empty or contain non-existent ids; never null, never contains null.

Specified by:
getRowSelectedIds in interface ISelectableTableContentProvider
Returns:
collection of ids of selected rows

setRowSelectedIds

public void setRowSelectedIds(Collection ids)
Description copied from interface: ISelectableTableContentProvider
Sets new selection using a collection of String ids of the rows to select. May be empty or contain non-existent ids; never null, never contains null.

Specified by:
setRowSelectedIds in interface ISelectableTableContentProvider
Parameters:
ids - the collection of String row ids

getUseUnselectedModel

public boolean getUseUnselectedModel()
Description copied from interface: ISelectableTableContentProvider
Returns true if it's more effecient to use unselected model (ie ISelectableTableContentProvider.getRowUnselectedIds() rather than ISelectableTableContentProvider.getRowSelectedIds()).

Specified by:
getUseUnselectedModel in interface ISelectableTableContentProvider
Returns:
true if it's more effecient to use unselected model

getRowUnselectedIds

public Collection getRowUnselectedIds()
Description copied from interface: ISelectableTableContentProvider
Returns collection of String ids of the un-selected rows (all other rows are selected implicitly) May be empty or contain non-existent ids; never null, never contains null.

Specified by:
getRowUnselectedIds in interface ISelectableTableContentProvider
Returns:
collection of ids of the un-selection rows

setRowUnselectedIds

public void setRowUnselectedIds(Collection ids)
Description copied from interface: ISelectableTableContentProvider
Unselects rows using a collection of String ids of the un-selected rows (all other rows are selected implicitly). May be empty or contain non-existent ids; never null, never contains null.

Specified by:
setRowUnselectedIds in interface ISelectableTableContentProvider
Parameters:
ids - collection of String row ids

isRowMixed

public boolean isRowMixed()
Description copied from interface: ISelectableTreeContentProvider
True if row selection state is mixed.

Specified by:
isRowMixed in interface ISelectableTreeContentProvider

getSort

public ISortInfo getSort()
Description copied from interface: ISortableTableContentProvider
Returns current sort info. Never null.

Specified by:
getSort in interface ISortableTableContentProvider
Returns:
currenly set sort info

setSort

public void setSort(ISortInfo sort)
Description copied from interface: ISortableTableContentProvider
Sets new sort info, re-sorting the table (if necessary). This does not change the model's rowIndex property, even though it will probably now point to a different row.

Specified by:
setSort in interface ISortableTableContentProvider
Parameters:
sort - Sort info, must not be null.

getRootIds

public Iterator getRootIds()
Description copied from interface: ITreeContentProvider
String ids of root rows, in order. Empty iterator (not null) if tree is empty.

Specified by:
getRootIds in interface ITreeContentProvider

getDepth

public int getDepth()
Description copied from interface: ITreeContentProvider
Depth of current row. Zero (0) for root.

Specified by:
getDepth in interface ITreeContentProvider

getParentId

public String getParentId()
Description copied from interface: ITreeContentProvider
Id of parent row. Null for root. Parent depth must be exactly one less than current depth.

Specified by:
getParentId in interface ITreeContentProvider

getChildIds

public Iterator getChildIds()
Description copied from interface: ITreeContentProvider
String ids of child rows, in order. Empty iterator (not null) if row has no children. Child depth must be exactly one more than current depth.

Specified by:
getChildIds in interface ITreeContentProvider

getHasChildren

public boolean getHasChildren()
Description copied from interface: ITreeContentProvider
True if current row has children.

Specified by:
getHasChildren in interface ITreeContentProvider

isFirstChild

public boolean isFirstChild()
Description copied from interface: ITreeContentProvider
True if current row is first child of parent (not whether or not current row is first row in tree). Also true for first root in tree (child with no parent is a root).

Specified by:
isFirstChild in interface ITreeContentProvider

isLastChild

public boolean isLastChild()
Description copied from interface: ITreeContentProvider
True if current row is last child of parent (not whether or not current row is last row in tree). Also true for last root in tree (child with no parent is a root).

Specified by:
isLastChild in interface ITreeContentProvider

getLastChildAncestors

public boolean[] getLastChildAncestors()
Description copied from interface: ITreeContentProvider
ITreeContentProvider.isLastChild() value of ancestors to the current row, from the root to the current row's parent. Zero-length array (non-null) for root.

Specified by:
getLastChildAncestors in interface ITreeContentProvider

isOpen

public boolean isOpen()
Description copied from interface: ITreeContentProvider
True if current row is open.

Specified by:
isOpen in interface ITreeContentProvider

setOpen

public void setOpen(boolean open)
Description copied from interface: ITreeContentProvider
True if current row is open.

Specified by:
setOpen in interface ITreeContentProvider

isVisible

public boolean isVisible()
Description copied from interface: ITreeContentProvider
True if ancestors of current row are all open. Root is always visible.

Specified by:
isVisible in interface ITreeContentProvider

getOpenIds

public Collection getOpenIds()
Description copied from interface: ITreeContentProvider
Collection of String ids of open rows. May be empty or contain non-existent ids; never null, never contains null.

Specified by:
getOpenIds in interface ITreeContentProvider

setOpenIds

public void setOpenIds(Collection ids)
Description copied from interface: ITreeContentProvider
Collection of String ids of open rows. May be empty or contain non-existent ids; never null, never contains null.

Specified by:
setOpenIds in interface ITreeContentProvider

getUseUnopenModel

public boolean getUseUnopenModel()
Description copied from interface: ITreeContentProvider
True if it's more effecient to use the un-open model (ITreeContentProvider.getUnopenIds()) rather than the open model (ITreeContentProvider.getOpenIds()).

Specified by:
getUseUnopenModel in interface ITreeContentProvider

getUnopenIds

public Collection getUnopenIds()
Description copied from interface: ITreeContentProvider
Collection of String ids of un-open rows (all other rows are open implicitly). May be empty or contain non-existent ids; never null, never contains null.

Specified by:
getUnopenIds in interface ITreeContentProvider

setUnopenIds

public void setUnopenIds(Collection ids)
Description copied from interface: ITreeContentProvider
Collection of String ids of un-open rows (all other rows are open implicitly). May be empty or contain non-existent ids; never null, never contains null.

Specified by:
setUnopenIds in interface ITreeContentProvider

isFilterable

public boolean isFilterable()
Description copied from interface: IFilterableTableContentProvider
True if this provider truely is filterable.

Specified by:
isFilterable in interface IFilterableTableContentProvider

getFilter

public String getFilter()
Description copied from interface: IFilterableTableContentProvider
Filter expression. Only rows matched by this filter should be exposed. Null or empty ("") signals expose the default set of rows.

Specified by:
getFilter in interface IFilterableTableContentProvider

setFilter

public void setFilter(String filter)
Description copied from interface: IFilterableTableContentProvider
Filter expression. Only rows matched by this filter should be exposed. Null or empty ("") signals expose the default set of rows.

Specified by:
setFilter in interface IFilterableTableContentProvider

setOpenToDepth

public void setOpenToDepth(int depth)
Sets tree open to the specified depth.

Parameters:
depth - Depth to which to open. 0 = none, 1 = roots, 2 = roots + children of roots, etc.

getRoots

public List getRoots()
List of INode roots or null.


setRoots

public void setRoots(List roots)
List of INode roots or null.


getCurrent

public INode getCurrent()
Current node or null.


setCurrent

public void setCurrent(INode current)
Current node or null.


setFilterable

public void setFilterable(boolean filterable)
True if this provider truely is filterable.


getRowFilterValueBinding

public ValueBinding getRowFilterValueBinding()
Value-binding which calculates the value to filter for the current row.


setRowFilterValueBinding

public void setRowFilterValueBinding(ValueBinding binding)
Value-binding which calculates the value to filter for the current row.


setRowFilterValueBindingAsString

public void setRowFilterValueBindingAsString(String binding)
Value-binding (in string form) which calculates the value to filter for the current row.


findNodeById

protected INode findNodeById(String id)
Returns node with specified id or null.


getChildren

protected List getChildren(INode parent)
List children for given parent node id.


getSiblings

protected List getSiblings(INode current)
Lists the sibling INodes of the current node.