public class NodeTreeContentProvider extends FilterableSelectableListTableContentProvider implements ISelectableTreeContentProvider
INode
roots.Modifier and Type | Class and Description |
---|---|
protected static class |
NodeTreeContentProvider.DummyValueExpression |
protected static class |
NodeTreeContentProvider.NodeComparator
Compares two nodes using column sorting info.
|
protected static class |
NodeTreeContentProvider.NodeIdsIterator
Iterates over a list of
INode s, returning each node's id. |
FilterableSelectableListTableContentProvider.RowFilterableValueDecorator
SelectableListTableContentProvider.Row, SelectableListTableContentProvider.RowComparator
Modifier and Type | Field and Description |
---|---|
protected TreeContentProviderHelper |
m_helper |
protected List<Object> |
m_roots
List of
INode roots. |
protected int |
openToDepth |
m_filter, m_filterable, m_filterValue, m_unfilteredlist
m_autoIdCounter, m_map, m_originalList, m_selectableHelper
m_array, m_canTemplateRow, m_index, m_list, m_onCreateRow, m_onDeleteRow, m_rowId, m_rowType, m_sort, m_templateRow, m_var
fExpireWithPageFlow
Constructor and Description |
---|
NodeTreeContentProvider()
New tree provider.
|
NodeTreeContentProvider(INode root)
New tree provider backed by single
INode root. |
NodeTreeContentProvider(List<?> list)
New tree provider backed by a list of
INode roots. |
Modifier and Type | Method and Description |
---|---|
protected String |
calculateRowId(int index,
Object data)
Calculates row id from the row data object using
ListTableContentProvider.getRowIdBinding() expression. |
protected void |
flatten(List<?> nodes,
List<Object> master)
Flattens list of nodes at a given level, recursively.
|
boolean |
getCanTemplateRow()
True if provider can be put into template row state.
|
Iterator<String> |
getChildIds()
String ids of child rows, in order. |
protected INode |
getCurrentNode()
Returns the current node.
|
Object |
getCurrentRow()
Returns current row.
|
int |
getDepth()
Depth of current row.
|
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. |
Collection<String> |
getOpenIds()
Collection of
String ids of open rows. |
int |
getOpenToDepth() |
String |
getParentId()
Id of parent row.
|
Iterator<String> |
getRootIds()
String ids of root rows, in order. |
Collection<String> |
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 |
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 |
isRowMixed()
True if row selection state is mixed.
|
boolean |
isVisible()
True if ancestors of current row are all open.
|
void |
openTreeNodes(int depth)
setOpenToDepth() optimization
|
void |
setList(List<?> list)
Sets a list to wrap
|
void |
setOpen(boolean open)
True if current row is open.
|
void |
setOpenIds(Collection<String> ids)
Collection of
String ids of open rows. |
void |
setOpenToDepth(int depth)
Sets tree open to the specified depth.
|
void |
setUnopenIds(Collection<String> ids)
Collection of
String ids of un-open rows
(all other rows are open implicitly). |
protected void |
sort()
(Re-)sorts list according to sort info.
|
protected void |
sort(List<?> nodes,
List<Object> master)
Sorts list of nodes at a given level, recursively;
then adds newly re-positioned nodes back into master Row list with new index.
|
filter, getFilter, getRowFilterValueBinding, getRowFilterValueBindingAsString, getRowFilterValueExpression, isFilterable, setFilter, setFilterable, setRowFilterValueBinding, setRowFilterValueBindingAsString, setRowFilterValueExpression
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
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
getExpireWithPageFlow, setExpireWithPageFlow
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getRowSelectedCount, getRowSelectedIds, getRowUnselectedIds, getUseUnselectedModel, isRowSelected, setRowSelected, setRowSelectedIds, setRowUnselectedIds
getRowId, isAddressable, setRowById
getRowCount, getRowIndex, getRowVariable, isRowAvailable, setRowIndex, setRowVariable
getPropertyKeys, getType, getValue, hasProperty, toString
protected TreeContentProviderHelper m_helper
protected int openToDepth
public NodeTreeContentProvider()
INode
roots must be set via setList(java.util.List<?>)
.public NodeTreeContentProvider(INode root)
INode
root.root
- Single INode
root.public Iterator<String> getRootIds()
ITreeContentProvider
String
ids of root rows, in order. Empty iterator (not null) if tree is empty.getRootIds
in interface ITreeContentProvider
public int getDepth()
ITreeContentProvider
getDepth
in interface ITreeContentProvider
public String getParentId()
ITreeContentProvider
getParentId
in interface ITreeContentProvider
public Iterator<String> getChildIds()
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.getChildIds
in interface ITreeContentProvider
public boolean getHasChildren()
ITreeContentProvider
getHasChildren
in interface ITreeContentProvider
public boolean isFirstChild()
ITreeContentProvider
isFirstChild
in interface ITreeContentProvider
public boolean isLastChild()
ITreeContentProvider
isLastChild
in interface ITreeContentProvider
public boolean[] getLastChildAncestors()
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.getLastChildAncestors
in interface ITreeContentProvider
public boolean isOpen()
ITreeContentProvider
isOpen
in interface ITreeContentProvider
public void setOpen(boolean open)
ITreeContentProvider
setOpen
in interface ITreeContentProvider
public boolean isVisible()
ITreeContentProvider
isVisible
in interface ITreeContentProvider
public Collection<String> getOpenIds()
ITreeContentProvider
String
ids of open rows.
May be empty or contain non-existent ids; never null, never contains null.getOpenIds
in interface ITreeContentProvider
public void setOpenIds(Collection<String> ids)
ITreeContentProvider
String
ids of open rows.
May be empty or contain non-existent ids; never null, never contains null.setOpenIds
in interface ITreeContentProvider
public boolean getUseUnopenModel()
ITreeContentProvider
ITreeContentProvider.getUnopenIds()
) rather than the open model (ITreeContentProvider.getOpenIds()
).getUseUnopenModel
in interface ITreeContentProvider
public Collection<String> getUnopenIds()
ITreeContentProvider
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.getUnopenIds
in interface ITreeContentProvider
public void setUnopenIds(Collection<String> ids)
ITreeContentProvider
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.setUnopenIds
in interface ITreeContentProvider
public boolean getCanTemplateRow()
IUpdateableTableContentProvider
getCanTemplateRow
in interface IUpdateableTableContentProvider
getCanTemplateRow
in class ListTableContentProvider
#setTemplateRow()}
public boolean isRowMixed()
ISelectableTreeContentProvider
isRowMixed
in interface ISelectableTreeContentProvider
public Object getCurrentRow()
SelectableListTableContentProvider
getCurrentRow
in interface ITableContentProvider
getCurrentRow
in class SelectableListTableContentProvider
ITableContentProvider.isRowAvailable()
protected void sort()
ListTableContentProvider
sort
in class FilterableSelectableListTableContentProvider
ListTableContentProvider.setSort(ISortInfo)
public void setList(List<?> list)
SelectableListTableContentProvider
setList
in class FilterableSelectableListTableContentProvider
list
- a listprotected String calculateRowId(int index, Object data)
ListTableContentProvider
ListTableContentProvider.getRowIdBinding()
expression.calculateRowId
in class ListTableContentProvider
index
- row indexdata
- row data objectprotected INode getCurrentNode()
IllegalStateException
- if no current rowpublic void setOpenToDepth(int depth)
depth
- Depth to which to open.
0 = roots, 1 = roots + children, 2 = roots + children + grandchildren of roots, etc.public void openTreeNodes(int depth)
ISelectableTreeContentProvider
openTreeNodes
in interface ISelectableTreeContentProvider
public int getOpenToDepth()
protected void sort(List<?> nodes, List<Object> master)