Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tonbeller.wcf.tree
Class OptimizingTreeModelDecorator

    java.lang.Object
      com.tonbeller.wcf.tree.TreeModelDecorator
          com.tonbeller.wcf.tree.OptimizingTreeModelDecorator

All Implemented Interfaces:
  DecoratedTreeModel, TreeModel

public class OptimizingTreeModelDecorator
extends TreeModelDecorator

Hides branches that do not contain significant nodes.

Significance is defined by a node filter. If the filter accepts a node, its significant, else its not.

Significance is transitive. A node, that is not accepted by the filter itself, is considered significant if it has at least one descendant that is accepted by the filter.

Example usecase: hide empty directories.

Warning: This class reads the whole tree model to find "significant" nodes.

Author:
  av

Field Summary

Fields inherited from interface com.tonbeller.wcf.tree.TreeModel
`EMPTY_MODEL`

Constructor Summary
`OptimizingTreeModelDecorator(NodeFilter filter, TreeModel decoree)` creates a reduced view on a tree model that uses a HashMap for implementation
`OptimizingTreeModelDecorator(NodeFilter filter, TreeModel decoree, java.util.Comparator nodeComparator)` creates a new optimizing tree model that uses a TreeMap for implementation

Method Summary
`java.lang.Object[]` | `getChildren(java.lang.Object node)`
`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)`
`boolean` | `isOptimizeLeafs()`
`boolean` | `isOptimizeRoot()`
`void` | `setOptimizeLeafs(boolean b)` if true, only significant leafs will be visible.
`void` | `setOptimizeRoot(boolean b)` if true, insignificant parents are not shown.

Methods inherited from class com.tonbeller.wcf.tree.TreeModelDecorator
`addTreeModelChangeListener, fireModelChanged, getDecoree, removeTreeModelChangeListener, setDecoree`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### OptimizingTreeModelDecorator

    public OptimizingTreeModelDecorator(NodeFilter filter,
                                        TreeModel decoree)

  creates a reduced view on a tree model that uses a HashMap for implementation

Parameters:
  `filter` - accepted nodes are considered "significant"

### OptimizingTreeModelDecorator

    public OptimizingTreeModelDecorator(NodeFilter filter,
                                        TreeModel decoree,
                                        java.util.Comparator nodeComparator)

  creates a new optimizing tree model that uses a TreeMap for implementation

Parameters:
  `filter` - accepted nodes are considered "significant"

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`
  Overrides:
    `getRoots` in class `TreeModelDecorator`

### hasChildren

    public boolean hasChildren(java.lang.Object node)

  Specified by:
    `hasChildren` in interface `TreeModel`
  Overrides:
    `hasChildren` in class `TreeModelDecorator`

### getChildren

    public java.lang.Object[] getChildren(java.lang.Object node)

  Specified by:
    `getChildren` in interface `TreeModel`
  Overrides:
    `getChildren` in class `TreeModelDecorator`

### getParent

    public java.lang.Object getParent(java.lang.Object node)

  Specified by:
    `getParent` in interface `TreeModel`
  Overrides:
    `getParent` in class `TreeModelDecorator`

### setOptimizeLeafs

    public void setOptimizeLeafs(boolean b)

  if true, only significant leafs will be visible.

### isOptimizeLeafs

    public boolean isOptimizeLeafs()

### setOptimizeRoot

    public void setOptimizeRoot(boolean b)

  if true, insignificant parents are not shown.

### isOptimizeRoot

    public boolean isOptimizeRoot()

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD