Package com.hybris.cockpitng.tree.util
Class TreeUtils.FilteredTreeModel<E>
- java.lang.Object
-
- org.zkoss.zul.AbstractTreeModel<E>
-
- com.hybris.cockpitng.tree.util.TreeUtils.FilteredTreeModel<E>
-
- All Implemented Interfaces:
TreeModelDecorator,RefreshableTreeModel<E>,java.io.Serializable,org.zkoss.zul.ext.Openable<E>,org.zkoss.zul.ext.Pageable,org.zkoss.zul.ext.Selectable<E>,org.zkoss.zul.ext.TreeOpenableModel,org.zkoss.zul.ext.TreeSelectableModel,org.zkoss.zul.PageableModel,org.zkoss.zul.TreeModel<E>
- Enclosing class:
- TreeUtils
public static class TreeUtils.FilteredTreeModel<E> extends org.zkoss.zul.AbstractTreeModel<E> implements TreeModelDecorator, RefreshableTreeModel<E>
Subclass ofAbstractTreeModelthat can be used as a filter.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver)Constructor that creates a filtered version of anAbstractTreeModel.FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver, int traversedItemsLimit)Constructor that creates a filtered version of anAbstractTreeModel.FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver, TreeUtils.MatchMode matchMode)Constructor that creates a filtered version of anAbstractTreeModel.FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver, TreeUtils.MatchMode matchMode, int traversedItemsLimit)Constructor that creates a filtered version of anAbstractTreeModel.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanaddOpenObject(E node)booleanaddOpenPath(int[] path)booleanaddOpenPaths(int[][] paths)booleanaddSelectionPath(int[] path)booleanaddSelectionPaths(int[][] paths)booleanaddToSelection(E node)protected voidclearChildrenMap(E node)voidclearOpen()voidclearSelection()protected booleanfilter(E node)protected java.util.List<E>filterChildren(E node)java.util.List<E>findNodesByData(java.lang.Object data)Gets all nodes related to specified data.int[]fromOriginalPath(int[] originalPath)Calculates a path valid for this model basing on a path valid for original modelint[][]fromOriginalPaths(int[][] originalPaths)Calculates paths valid for this model basing on paths valid for original modelEgetChild(E parent, int index)intgetChildCount(E parent)protected java.util.List<E>getChildren(E parent)protected intgetDynamicNodeDepth(DynamicNode node)java.util.List<E>getMatchingNodes()Deprecated, for removal: This API element is subject to removal in a future version.since 2005, do not useintgetOpenCount()java.util.Set<E>getOpenObjects()int[]getOpenPath()int[][]getOpenPaths()org.zkoss.zul.TreeModel<E>getOriginalModel()protected <M extends org.zkoss.zul.ext.TreeOpenableModel & org.zkoss.zul.ext.Openable<E>>
java.util.Optional<M>getOriginalOpenableModel()protected <M extends RefreshableTreeModel<E>>
java.util.Optional<M>getOriginalRefreshableModel()protected <M extends org.zkoss.zul.ext.TreeSelectableModel & org.zkoss.zul.ext.Selectable<E>>
java.util.Optional<M>getOriginalSelectableModel()int[]getPath(E child)TreeUtils.SearchDepthgetSearchDepth()Checks whether tree is filtered up until first match or independent of node depthjava.util.Set<E>getSelection()org.zkoss.zul.ext.SelectionControl<E>getSelectionControl()intgetSelectionCount()int[]getSelectionPath()int[][]getSelectionPaths()protected booleanisEligibleForMatching(E node)booleanisLeaf(E node)booleanisMultiple()booleanisObjectOpened(java.lang.Object node)booleanisOpenEmpty()booleanisPathOpened(int[] path)booleanisPathSelected(int[] path)booleanisSelected(java.lang.Object node)booleanisSelectionEmpty()protected booleanisTraverseLimitExceeded()booleanmatchesFilter(E node)Checks whether particular node matches filter.protected booleanmatchesFilterString(E node)voidrebuild()Deprecated, for removal: This API element is subject to removal in a future version.since 1808, create a new instance ofTreeUtils.FilteredTreeModelinsteadvoidrefreshChildren(E node, java.util.List<E> children)Sets new children nodes of specified parent node and refreshes all data related to them.booleanremoveFromSelection(java.lang.Object node)booleanremoveOpenObject(java.lang.Object node)booleanremoveOpenPath(int[] path)booleanremoveOpenPaths(int[][] paths)booleanremoveSelectionPath(int[] path)booleanremoveSelectionPaths(int[][] paths)voidsetMultiple(boolean multiple)voidsetOpenObjects(java.util.Collection<? extends E> nodes)voidsetSearchDepth(TreeUtils.SearchDepth searchDepth)Determines whether tree is filtered up until first match or independent of node depthvoidsetSelection(java.util.Collection<? extends E> nodes)voidsetSelectionControl(org.zkoss.zul.ext.SelectionControl selectionControl)int[]toOriginalPath(int[] path)Calculates a path valid for original model basing on a path valid for this modelint[][]toOriginalPaths(int[][] paths)Calculates paths valid for this model basing on paths valid for original model-
Methods inherited from class org.zkoss.zul.AbstractTreeModel
addPagingEventListener, addTreeDataListener, afterSort, beforeSort, clone, fireEvent, fireEvent, fireEvent, fireOpenChanged, fireSelectionChanged, getActivePage, getChild, getIndexOfChild, getPageCount, getPageSize, getRoot, removePagingEventListener, removeTreeDataListener, setActivePage, setPageSize
-
-
-
-
Constructor Detail
-
FilteredTreeModel
public FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver)
Constructor that creates a filtered version of anAbstractTreeModel.- Parameters:
originalModel- the treemodel that should be filtered.filterString- the string that must match the treeitems.camelCase- whether camelcase matching should be used or not.filterStringResolver- needed, if treenodes not of typeString.
-
FilteredTreeModel
public FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver, TreeUtils.MatchMode matchMode)
Constructor that creates a filtered version of anAbstractTreeModel.- Parameters:
originalModel- the treemodel that should be filtered.filterString- the string that must match the treeitems.camelCase- whether camelcase matching should be used or not.filterStringResolver- needed, if treenodes not of typeString.matchMode- type of match used during search.
-
FilteredTreeModel
public FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver, int traversedItemsLimit)
Constructor that creates a filtered version of anAbstractTreeModel.- Parameters:
originalModel- the treemodel that should be filtered.filterString- the string that must match the treeitems.camelCase- whether camelcase matching should be used or not.filterStringResolver- needed, if treenodes not of typeString.traversedItemsLimit- the maximum number of items which can be traversed during filtering. A negative value means that all items can be visited.
-
FilteredTreeModel
public FilteredTreeModel(org.zkoss.zul.TreeModel<E> originalModel, java.lang.String filterString, boolean camelCase, TreeUtils.FilterStringResolver<E> filterStringResolver, TreeUtils.MatchMode matchMode, int traversedItemsLimit)
Constructor that creates a filtered version of anAbstractTreeModel.- Parameters:
originalModel- the treemodel that should be filtered.filterString- the string that must match the treeitems.camelCase- whether camelcase matching should be used or not.filterStringResolver- needed, if treenodes not of typeString.matchMode- type of match used during search.traversedItemsLimit- the maximum number of items which can be traversed during filtering. A negative value means that all items can be visited.
-
-
Method Detail
-
getSearchDepth
public TreeUtils.SearchDepth getSearchDepth()
Checks whether tree is filtered up until first match or independent of node depth- Returns:
- search depth of tree model
-
setSearchDepth
public void setSearchDepth(TreeUtils.SearchDepth searchDepth)
Determines whether tree is filtered up until first match or independent of node depth- Parameters:
searchDepth- new search depth for this tree
-
rebuild
@Deprecated(since="1808", forRemoval=true) public void rebuild()Deprecated, for removal: This API element is subject to removal in a future version.since 1808, create a new instance ofTreeUtils.FilteredTreeModelinsteadRebuilds this filtered tree (executing filtering again). It also empties open and selection paths.- Throws:
ExceededTraversedItemsLimitException- if a number of the traversed items exceeded the limit.
-
filter
protected boolean filter(E node)
-
isTraverseLimitExceeded
protected boolean isTraverseLimitExceeded()
-
matchesFilter
public boolean matchesFilter(E node)
Checks whether particular node matches filter.- Parameters:
node- node to be checked- Returns:
trueif node data matches filter
-
isEligibleForMatching
protected boolean isEligibleForMatching(E node)
-
getDynamicNodeDepth
protected int getDynamicNodeDepth(DynamicNode node)
-
matchesFilterString
protected boolean matchesFilterString(E node)
-
getOriginalModel
public org.zkoss.zul.TreeModel<E> getOriginalModel()
- Specified by:
getOriginalModelin interfaceTreeModelDecorator
-
getOriginalSelectableModel
protected <M extends org.zkoss.zul.ext.TreeSelectableModel & org.zkoss.zul.ext.Selectable<E>> java.util.Optional<M> getOriginalSelectableModel()
-
getOriginalOpenableModel
protected <M extends org.zkoss.zul.ext.TreeOpenableModel & org.zkoss.zul.ext.Openable<E>> java.util.Optional<M> getOriginalOpenableModel()
-
getOriginalRefreshableModel
protected <M extends RefreshableTreeModel<E>> java.util.Optional<M> getOriginalRefreshableModel()
-
getMatchingNodes
@Deprecated(since="2005", forRemoval=true) public java.util.List<E> getMatchingNodes()Deprecated, for removal: This API element is subject to removal in a future version.since 2005, do not use
-
getChild
public E getChild(E parent, int index)
- Specified by:
getChildin interfaceorg.zkoss.zul.TreeModel<E>
-
getChildCount
public int getChildCount(E parent)
- Specified by:
getChildCountin interfaceorg.zkoss.zul.TreeModel<E>
-
getPath
public int[] getPath(E child)
-
refreshChildren
public void refreshChildren(E node, java.util.List<E> children)
Description copied from interface:RefreshableTreeModelSets new children nodes of specified parent node and refreshes all data related to them.- Specified by:
refreshChildrenin interfaceRefreshableTreeModel<E>- Parameters:
node- parent nodechildren- new children nodes
-
clearChildrenMap
protected void clearChildrenMap(E node)
-
findNodesByData
public java.util.List<E> findNodesByData(java.lang.Object data)
Description copied from interface:RefreshableTreeModelGets all nodes related to specified data.In case of dynamic trees, method should return only those nodes that are already known and avoid traversing through whole tree to gather all related nodes.
- Specified by:
findNodesByDatain interfaceRefreshableTreeModel<E>- Parameters:
data- node data- Returns:
- list of known nodes that are related to data
-
getOpenObjects
public java.util.Set<E> getOpenObjects()
-
setOpenObjects
public void setOpenObjects(java.util.Collection<? extends E> nodes)
-
isObjectOpened
public boolean isObjectOpened(java.lang.Object node)
-
addOpenObject
public boolean addOpenObject(E node)
-
removeOpenObject
public boolean removeOpenObject(java.lang.Object node)
-
addOpenPath
public boolean addOpenPath(int[] path)
- Specified by:
addOpenPathin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
addOpenPathin classorg.zkoss.zul.AbstractTreeModel<E>
-
addOpenPaths
public boolean addOpenPaths(int[][] paths)
- Specified by:
addOpenPathsin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
addOpenPathsin classorg.zkoss.zul.AbstractTreeModel<E>
-
removeOpenPath
public boolean removeOpenPath(int[] path)
- Specified by:
removeOpenPathin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
removeOpenPathin classorg.zkoss.zul.AbstractTreeModel<E>
-
removeOpenPaths
public boolean removeOpenPaths(int[][] paths)
- Specified by:
removeOpenPathsin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
removeOpenPathsin classorg.zkoss.zul.AbstractTreeModel<E>
-
isPathOpened
public boolean isPathOpened(int[] path)
- Specified by:
isPathOpenedin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
isPathOpenedin classorg.zkoss.zul.AbstractTreeModel<E>
-
isOpenEmpty
public boolean isOpenEmpty()
-
clearOpen
public void clearOpen()
-
getOpenCount
public int getOpenCount()
- Specified by:
getOpenCountin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
getOpenCountin classorg.zkoss.zul.AbstractTreeModel<E>
-
getOpenPath
public int[] getOpenPath()
- Specified by:
getOpenPathin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
getOpenPathin classorg.zkoss.zul.AbstractTreeModel<E>
-
getOpenPaths
public int[][] getOpenPaths()
- Specified by:
getOpenPathsin interfaceorg.zkoss.zul.ext.TreeOpenableModel- Overrides:
getOpenPathsin classorg.zkoss.zul.AbstractTreeModel<E>
-
getSelection
public java.util.Set<E> getSelection()
-
setSelection
public void setSelection(java.util.Collection<? extends E> nodes)
-
isSelected
public boolean isSelected(java.lang.Object node)
-
addToSelection
public boolean addToSelection(E node)
-
removeFromSelection
public boolean removeFromSelection(java.lang.Object node)
-
setSelectionControl
public void setSelectionControl(org.zkoss.zul.ext.SelectionControl selectionControl)
-
getSelectionControl
public org.zkoss.zul.ext.SelectionControl<E> getSelectionControl()
-
setMultiple
public void setMultiple(boolean multiple)
-
isMultiple
public boolean isMultiple()
-
addSelectionPath
public boolean addSelectionPath(int[] path)
- Specified by:
addSelectionPathin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
addSelectionPathin classorg.zkoss.zul.AbstractTreeModel<E>
-
addSelectionPaths
public boolean addSelectionPaths(int[][] paths)
- Specified by:
addSelectionPathsin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
addSelectionPathsin classorg.zkoss.zul.AbstractTreeModel<E>
-
removeSelectionPath
public boolean removeSelectionPath(int[] path)
- Specified by:
removeSelectionPathin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
removeSelectionPathin classorg.zkoss.zul.AbstractTreeModel<E>
-
removeSelectionPaths
public boolean removeSelectionPaths(int[][] paths)
- Specified by:
removeSelectionPathsin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
removeSelectionPathsin classorg.zkoss.zul.AbstractTreeModel<E>
-
isPathSelected
public boolean isPathSelected(int[] path)
- Specified by:
isPathSelectedin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
isPathSelectedin classorg.zkoss.zul.AbstractTreeModel<E>
-
isSelectionEmpty
public boolean isSelectionEmpty()
-
clearSelection
public void clearSelection()
-
getSelectionPath
public int[] getSelectionPath()
- Specified by:
getSelectionPathin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
getSelectionPathin classorg.zkoss.zul.AbstractTreeModel<E>
-
getSelectionPaths
public int[][] getSelectionPaths()
- Specified by:
getSelectionPathsin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
getSelectionPathsin classorg.zkoss.zul.AbstractTreeModel<E>
-
getSelectionCount
public int getSelectionCount()
- Specified by:
getSelectionCountin interfaceorg.zkoss.zul.ext.TreeSelectableModel- Overrides:
getSelectionCountin classorg.zkoss.zul.AbstractTreeModel<E>
-
fromOriginalPath
public int[] fromOriginalPath(int[] originalPath)
Calculates a path valid for this model basing on a path valid for original model- Parameters:
originalPath- path valid for original model- Returns:
- path valid for this model or empty array if path was filtered out
-
toOriginalPath
public int[] toOriginalPath(int[] path)
Calculates a path valid for original model basing on a path valid for this model- Parameters:
path- path valid for this model- Returns:
- path valid for original model
-
fromOriginalPaths
public int[][] fromOriginalPaths(int[][] originalPaths)
Calculates paths valid for this model basing on paths valid for original model- Parameters:
originalPaths- paths valid for original model- Returns:
- paths valid for this model (may contain empty arrays if particular path was filtered out)
-
toOriginalPaths
public int[][] toOriginalPaths(int[][] paths)
Calculates paths valid for this model basing on paths valid for original model- Parameters:
paths- paths valid for original model- Returns:
- paths valid for this model
-
-