public class FilteredTreeModel
extends java.lang.Object
implements javax.swing.tree.TreeModel
TreeModel
. Nodes
may be associated with keywords that can be searched for hiding all nodes
that do not match the search term.Modifier and Type | Class and Description |
---|---|
static interface |
FilteredTreeModel.ParentProvider
Interface to retrieve parent nodes.
|
static class |
FilteredTreeModel.TreeNodeParentProvider
Implements
TreeNodeParentProvider for tree models that
use TreeNode objects such as DefaultTreeModel . |
Constructor and Description |
---|
FilteredTreeModel(javax.swing.tree.DefaultTreeModel model,
boolean ignoreCase)
Constructs a filtering tree model.
|
FilteredTreeModel(javax.swing.tree.TreeModel model,
boolean ignoreCase,
FilteredTreeModel.ParentProvider parentProvider)
Constructs a filtering tree model.
|
Modifier and Type | Method and Description |
---|---|
void |
addSearchKey(java.lang.Object node,
java.lang.String key)
Associates
node with a search key . |
void |
addTreeModelListener(javax.swing.event.TreeModelListener l) |
void |
clearFilter()
Makes all nodes in the tree visible.
|
void |
filterByText(java.lang.String text)
Hides nodes from the tree that do not match
text . |
java.lang.Object |
getChild(java.lang.Object parent,
int index) |
int |
getChildCount(java.lang.Object parent) |
int |
getIndexOfChild(java.lang.Object parent,
java.lang.Object child) |
protected java.util.SortedMap<java.lang.String,java.util.List<java.lang.Object>> |
getMatches(java.lang.String text) |
javax.swing.tree.TreeModel |
getModel()
Returns the underlying data model.
|
java.lang.Object |
getRoot() |
boolean |
isLeaf(java.lang.Object node) |
boolean |
isVisible(java.lang.Object node) |
void |
reload() |
void |
removeSearchKey(java.lang.Object node,
java.lang.String key) |
void |
removeTreeModelListener(javax.swing.event.TreeModelListener l) |
void |
reset()
Sets all nodes visible.
|
void |
setModel(javax.swing.tree.DefaultTreeModel model)
Sets the underlying data model.
|
void |
setModel(javax.swing.tree.TreeModel model,
FilteredTreeModel.ParentProvider parentProvider)
Sets the underlying data model.
|
void |
valueForPathChanged(javax.swing.tree.TreePath path,
java.lang.Object newValue) |
public FilteredTreeModel(javax.swing.tree.DefaultTreeModel model, boolean ignoreCase)
model
- the underlying data modelignoreCase
- if true, filtering is case insensitivepublic FilteredTreeModel(javax.swing.tree.TreeModel model, boolean ignoreCase, FilteredTreeModel.ParentProvider parentProvider)
model
- the underlying data modelignoreCase
- if true, filtering is case insensitiveparentProvider
- used to retrieve parents of nodespublic void addSearchKey(java.lang.Object node, java.lang.String key)
node
with a search key
.public void addTreeModelListener(javax.swing.event.TreeModelListener l)
addTreeModelListener
in interface javax.swing.tree.TreeModel
public void clearFilter()
protected java.util.SortedMap<java.lang.String,java.util.List<java.lang.Object>> getMatches(java.lang.String text)
public void filterByText(java.lang.String text)
text
.text
- search textpublic java.lang.Object getChild(java.lang.Object parent, int index)
getChild
in interface javax.swing.tree.TreeModel
public int getChildCount(java.lang.Object parent)
getChildCount
in interface javax.swing.tree.TreeModel
public int getIndexOfChild(java.lang.Object parent, java.lang.Object child)
getIndexOfChild
in interface javax.swing.tree.TreeModel
public javax.swing.tree.TreeModel getModel()
public java.lang.Object getRoot()
getRoot
in interface javax.swing.tree.TreeModel
public boolean isLeaf(java.lang.Object node)
isLeaf
in interface javax.swing.tree.TreeModel
public boolean isVisible(java.lang.Object node)
public void reload()
public void removeSearchKey(java.lang.Object node, java.lang.String key)
public void removeTreeModelListener(javax.swing.event.TreeModelListener l)
removeTreeModelListener
in interface javax.swing.tree.TreeModel
public void setModel(javax.swing.tree.DefaultTreeModel model)
model
- data modelpublic void setModel(javax.swing.tree.TreeModel model, FilteredTreeModel.ParentProvider parentProvider)
model
- data modelparentProvider
- used to retrieve parents of nodespublic void reset()
public void valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)
valueForPathChanged
in interface javax.swing.tree.TreeModel