com.tonbeller.wcf.tree
Class FilteringTreeModelDecorator

java.lang.Object
  extended bycom.tonbeller.wcf.tree.FilteringTreeModelDecorator
All Implemented Interfaces:
DecoratedTreeModel, TreeModel

public class FilteringTreeModelDecorator
extends java.lang.Object
implements TreeModel, DecoratedTreeModel

uses a NodeFilter to select the visible nodes


Field Summary
 
Fields inherited from interface com.tonbeller.wcf.tree.TreeModel
EMPTY_MODEL
 
Constructor Summary
FilteringTreeModelDecorator(TreeModel decoree, NodeFilter filter)
           
FilteringTreeModelDecorator(TreeModel decoree, NodeFilter filter, NodeFilter hasAlwaysChildren)
           
 
Method Summary
 void addTreeModelChangeListener(TreeModelChangeListener l)
           
 void fireModelChanged(boolean identityChanged)
          fires a TreeModelChangeEvent.
 java.lang.Object[] getChildren(java.lang.Object node)
           
 TreeModel getDecoree()
           
 NodeFilter getFilter()
           
 NodeFilter getHasAlwaysChildren()
          tree nodes that are accepted by this filter are assumed to have always children.
 java.lang.Object getParent(java.lang.Object node)
           
 java.lang.Object[] getRoots()
          returns the root members of the tree.
 boolean hasChildren(java.lang.Object node)
           
 void removeTreeModelChangeListener(TreeModelChangeListener l)
           
 void setDecoree(TreeModel model)
           
 void setFilter(NodeFilter filter)
           
 void setHasAlwaysChildren(NodeFilter hasAlwaysChildren)
          tree nodes that are accepted by this filter are assumed to have always children.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilteringTreeModelDecorator

public FilteringTreeModelDecorator(TreeModel decoree,
                                   NodeFilter filter)

FilteringTreeModelDecorator

public FilteringTreeModelDecorator(TreeModel decoree,
                                   NodeFilter filter,
                                   NodeFilter hasAlwaysChildren)
Method Detail

getRoots

public java.lang.Object[] getRoots()
Description copied from interface: TreeModel
returns the root members of the tree.

Specified by:
getRoots in interface TreeModel

hasChildren

public boolean hasChildren(java.lang.Object node)
Specified by:
hasChildren in interface TreeModel
Returns:
true if the member can be expanded

getChildren

public java.lang.Object[] getChildren(java.lang.Object node)
Specified by:
getChildren in interface TreeModel
Returns:
the children of the member

getParent

public java.lang.Object getParent(java.lang.Object node)
Specified by:
getParent in interface TreeModel
Returns:
the parent of member or null, if this is a root member

getDecoree

public TreeModel getDecoree()
Specified by:
getDecoree in interface DecoratedTreeModel

getFilter

public NodeFilter getFilter()

setDecoree

public void setDecoree(TreeModel model)

setFilter

public void setFilter(NodeFilter filter)

addTreeModelChangeListener

public void addTreeModelChangeListener(TreeModelChangeListener l)
Specified by:
addTreeModelChangeListener in interface TreeModel

removeTreeModelChangeListener

public void removeTreeModelChangeListener(TreeModelChangeListener l)
Specified by:
removeTreeModelChangeListener in interface TreeModel

fireModelChanged

public void fireModelChanged(boolean identityChanged)
Description copied from interface: TreeModel
fires a TreeModelChangeEvent.

Specified by:
fireModelChanged in interface TreeModel
Parameters:
identityChanged - if true, the identities of the tree nodes have changed and, for example, the selection will be cleared.

getHasAlwaysChildren

public NodeFilter getHasAlwaysChildren()
tree nodes that are accepted by this filter are assumed to have always children. So hasChildren() returns always true and does not call getChildren()


setHasAlwaysChildren

public void setHasAlwaysChildren(NodeFilter hasAlwaysChildren)
tree nodes that are accepted by this filter are assumed to have always children. So hasChildren() returns always true and does not call getChildren()