Class NodeTreeContentProvider
java.lang.Object
com.webmethods.caf.faces.bean.PageFlowScopeAdapter
com.webmethods.caf.faces.data.object.ListTableContentProvider
com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
com.webmethods.caf.faces.data.object.FilterableSelectableListTableContentProvider
com.webmethods.caf.faces.data.tree.object.NodeTreeContentProvider
- All Implemented Interfaces:
IPageFlowScopeAdapter
,IAddressableTableContentProvider
,IContentProvider
,IFilterableTableContentProvider
,IRefreshable
,IRefreshableContentProvider
,IReorderableTableContentProvider
,ISelectableTableContentProvider
,ISortableTableContentProvider
,ITableContentProvider
,IUpdateableContentProvider
,IUpdateableTableContentProvider
,ISelectableTreeContentProvider
,ITreeContentProvider
,Serializable
- Direct Known Subclasses:
BoundChildrenTreeContentProvider
,ListTreeContentProvider
,XMLTreeContentProvider
public class NodeTreeContentProvider
extends FilterableSelectableListTableContentProvider
implements ISelectableTreeContentProvider
Tree provider backed by a list of
INode
roots.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
protected static class
Compares two nodes using column sorting info.protected static class
Iterates over a list ofINode
s, returning each node's id.Nested classes/interfaces inherited from class com.webmethods.caf.faces.data.object.FilterableSelectableListTableContentProvider
FilterableSelectableListTableContentProvider.RowFilterableValueDecorator
Nested classes/interfaces inherited from class com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
SelectableListTableContentProvider.Row, SelectableListTableContentProvider.RowComparator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected TreeContentProviderHelper
List ofINode
roots.protected int
Fields inherited from class com.webmethods.caf.faces.data.object.FilterableSelectableListTableContentProvider
m_filter, m_filterable, m_filterValue, m_unfilteredlist
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
ConstructorsConstructorDescriptionNew tree provider.NodeTreeContentProvider
(INode root) New tree provider backed by singleINode
root.NodeTreeContentProvider
(List<?> list) New tree provider backed by a list ofINode
roots. -
Method Summary
Modifier and TypeMethodDescriptionprotected String
calculateRowId
(int index, Object data) Calculates row id from the row data object usingListTableContentProvider.getRowIdBinding()
expression.protected void
Flattens list of nodes at a given level, recursively.boolean
True if provider can be put into template row state.String
ids of child rows, in order.protected INode
Returns the current node.Returns current row.int
getDepth()
Depth of current row.boolean
True if current row has children.boolean[]
ITreeContentProvider.isLastChild()
value of ancestors to the current row, from the root to the current row's parent.Collection ofString
ids of open rows.int
Id of parent row.String
ids of root rows, in order.Collection ofString
ids of un-open rows (all other rows are open implicitly).boolean
True if it's more effecient to use the un-open model (ITreeContentProvider.getUnopenIds()
) rather than the open model (ITreeContentProvider.getOpenIds()
).boolean
True if current row is first child of parent (not whether or not current row is first row in tree).boolean
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
True if row selection state is mixed.boolean
True if ancestors of current row are all open.void
openTreeNodes
(int depth) setOpenToDepth() optimizationvoid
Sets a list to wrapvoid
setOpen
(boolean open) True if current row is open.void
setOpenIds
(Collection<String> ids) Collection ofString
ids of open rows.void
setOpenToDepth
(int depth) Sets tree open to the specified depth.void
setUnopenIds
(Collection<String> ids) Collection ofString
ids of un-open rows (all other rows are open implicitly).protected void
sort()
(Re-)sorts list according to sort info.protected void
Sorts list of nodes at a given level, recursively; then adds newly re-positioned nodes back into master Row list with new index.Methods inherited from class com.webmethods.caf.faces.data.object.FilterableSelectableListTableContentProvider
filter, getFilter, getRowFilterValueBinding, getRowFilterValueBindingAsString, getRowFilterValueExpression, isFilterable, setFilter, setFilterable, setRowFilterValueBinding, setRowFilterValueBindingAsString, setRowFilterValueExpression
Methods inherited from class com.webmethods.caf.faces.data.object.SelectableListTableContentProvider
createRow, deleteRow, getList, getNeedRefresh, getRowId, getRowSelectedCount, getRowSelectedIds, getRowUnselectedIds, getSelectedRows, getUseUnselectedModel, isAddressable, isAutoRefresh, isRowSelected, moveTo, refresh, setAutoRefresh, setCurrentRow, setNeedRefresh, setRowById, setRowSelected, setRowSelectedIds, setRowUnselectedIds, setRowVariable, setTemplateRow, supportsAutoRefresh, updateOriginalList
Methods inherited from class com.webmethods.caf.faces.data.object.ListTableContentProvider
calculateRowId, getArray, getOnCreateRow, getOnCreateRowExpression, getOnDeleteRow, getOnDeleteRowExpression, getPropertyKeys, getRowCount, getRowIdBinding, getRowIdExpression, getRowIndex, getRowType, getRowVariable, getSort, getType, getValue, hasProperty, isReadOnly, isReorderable, isRowAvailable, isTemplateRow, newRow, setArray, setCanTemplateRow, setOnCreateRow, setOnCreateRowExpression, setOnDeleteRow, setOnDeleteRowExpression, setRowId, setRowIdBinding, setRowIdExpression, 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.IAddressableTableContentProvider
getRowId, isAddressable, setRowById
Methods inherited from interface com.webmethods.caf.faces.data.IContentProvider
getPropertyKeys, getType, getValue, hasProperty, toString
Methods inherited from interface com.webmethods.caf.faces.data.ISelectableTableContentProvider
getRowSelectedCount, getRowSelectedIds, getRowUnselectedIds, getUseUnselectedModel, isRowSelected, setRowSelected, setRowSelectedIds, setRowUnselectedIds
Methods inherited from interface com.webmethods.caf.faces.data.ITableContentProvider
getRowCount, getRowIndex, getRowVariable, isRowAvailable, setRowIndex, setRowVariable
-
Field Details
-
m_helper
-
openToDepth
protected int openToDepth -
m_roots
List ofINode
roots.
-
-
Constructor Details
-
NodeTreeContentProvider
public NodeTreeContentProvider()New tree provider. List ofINode
roots must be set viasetList(java.util.List<?>)
. -
NodeTreeContentProvider
New tree provider backed by singleINode
root.- Parameters:
root
- SingleINode
root.
-
NodeTreeContentProvider
New tree provider backed by a list ofINode
roots.- Parameters:
list
- List ofINode
roots.
-
-
Method Details
-
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 interfaceITreeContentProvider
-
getDepth
public int getDepth()Description copied from interface:ITreeContentProvider
Depth of current row. Zero (0) for root.- Specified by:
getDepth
in interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
getHasChildren
public boolean getHasChildren()Description copied from interface:ITreeContentProvider
True if current row has children.- Specified by:
getHasChildren
in interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
isOpen
public boolean isOpen()Description copied from interface:ITreeContentProvider
True if current row is open.- Specified by:
isOpen
in interfaceITreeContentProvider
-
setOpen
public void setOpen(boolean open) Description copied from interface:ITreeContentProvider
True if current row is open.- Specified by:
setOpen
in interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
getOpenIds
Description copied from interface:ITreeContentProvider
Collection ofString
ids of open rows. May be empty or contain non-existent ids; never null, never contains null.- Specified by:
getOpenIds
in interfaceITreeContentProvider
-
setOpenIds
Description copied from interface:ITreeContentProvider
Collection ofString
ids of open rows. May be empty or contain non-existent ids; never null, never contains null.- Specified by:
setOpenIds
in interfaceITreeContentProvider
-
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 interfaceITreeContentProvider
-
getUnopenIds
Description copied from interface:ITreeContentProvider
Collection ofString
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 interfaceITreeContentProvider
-
setUnopenIds
Description copied from interface:ITreeContentProvider
Collection ofString
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 interfaceITreeContentProvider
-
getCanTemplateRow
public boolean getCanTemplateRow()Description copied from interface:IUpdateableTableContentProvider
True if provider can be put into template row state.- Specified by:
getCanTemplateRow
in interfaceIUpdateableTableContentProvider
- Overrides:
getCanTemplateRow
in classListTableContentProvider
-
isRowMixed
public boolean isRowMixed()Description copied from interface:ISelectableTreeContentProvider
True if row selection state is mixed.- Specified by:
isRowMixed
in interfaceISelectableTreeContentProvider
-
getCurrentRow
Description copied from class:SelectableListTableContentProvider
Returns current row. If no row is current, returns first row. If doesn't have first row, returns null.- Specified by:
getCurrentRow
in interfaceITableContentProvider
- Overrides:
getCurrentRow
in classSelectableListTableContentProvider
- Returns:
- row object or null
- See Also:
-
sort
protected void sort()Description copied from class:ListTableContentProvider
(Re-)sorts list according to sort info.- Overrides:
sort
in classFilterableSelectableListTableContentProvider
- See Also:
-
setList
Description copied from class:SelectableListTableContentProvider
Sets a list to wrap- Overrides:
setList
in classFilterableSelectableListTableContentProvider
- Parameters:
list
- a list
-
calculateRowId
Description copied from class:ListTableContentProvider
Calculates row id from the row data object usingListTableContentProvider.getRowIdBinding()
expression.- Overrides:
calculateRowId
in classListTableContentProvider
- Parameters:
index
- row indexdata
- row data object- Returns:
- row id
-
getCurrentNode
Returns the current node.- Throws:
IllegalStateException
- if no current row
-
setOpenToDepth
public void setOpenToDepth(int depth) Sets tree open to the specified depth.- Parameters:
depth
- Depth to which to open. 0 = roots, 1 = roots + children, 2 = roots + children + grandchildren of roots, etc.
-
openTreeNodes
public void openTreeNodes(int depth) Description copied from interface:ISelectableTreeContentProvider
setOpenToDepth() optimization- Specified by:
openTreeNodes
in interfaceISelectableTreeContentProvider
-
getOpenToDepth
public int getOpenToDepth()- Returns:
- tree open depth
-
sort
Sorts list of nodes at a given level, recursively; then adds newly re-positioned nodes back into master Row list with new index. -
flatten
Flattens list of nodes at a given level, recursively.
-