Package uk.ac.starlink.vo
Class MaskTreeModel
- java.lang.Object
-
- uk.ac.starlink.vo.MaskTreeModel
-
- All Implemented Interfaces:
javax.swing.tree.TreeModel
public class MaskTreeModel extends java.lang.Object implements javax.swing.tree.TreeModelWrapper tree model that includes only a selection of the nodes in the base model. The selection is controlled by a supplied Mask object.It's intended for use with a static base model. It ought to work for a base model which sends TreeModelEvents, but that hasn't been tested, and it doesn't translate the events very cleverly to downstream listeners.
- Since:
- 17 Mar 2015
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceMaskTreeModel.MaskDefines node inclusion in a masked tree.
-
Constructor Summary
Constructors Constructor Description MaskTreeModel(javax.swing.tree.TreeModel base, boolean includeDescendants)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTreeModelListener(javax.swing.event.TreeModelListener lnr)javax.swing.tree.TreeModelgetBaseModel()Returns the underlying, unmasked, model.java.lang.ObjectgetChild(java.lang.Object parent, int index)intgetChildCount(java.lang.Object parent)intgetIndexOfChild(java.lang.Object parent, java.lang.Object child)MaskTreeModel.MaskgetMask()Returns the currently active mask.intgetNodeCount()Returns the total number of nodes in this model.java.lang.ObjectgetRoot()booleanisLeaf(java.lang.Object node)voidremoveTreeModelListener(javax.swing.event.TreeModelListener lnr)voidsetBaseModel(javax.swing.tree.TreeModel base)Sets the underlying, unmasked, model.voidsetMask(MaskTreeModel.Mask mask)Sets the mask for defning inclusion of nodes in the base model.voidvalueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)
-
-
-
Method Detail
-
getRoot
public java.lang.Object getRoot()
- Specified by:
getRootin interfacejavax.swing.tree.TreeModel
-
isLeaf
public boolean isLeaf(java.lang.Object node)
- Specified by:
isLeafin interfacejavax.swing.tree.TreeModel
-
getChildCount
public int getChildCount(java.lang.Object parent)
- Specified by:
getChildCountin interfacejavax.swing.tree.TreeModel
-
getChild
public java.lang.Object getChild(java.lang.Object parent, int index)- Specified by:
getChildin interfacejavax.swing.tree.TreeModel
-
getIndexOfChild
public int getIndexOfChild(java.lang.Object parent, java.lang.Object child)- Specified by:
getIndexOfChildin interfacejavax.swing.tree.TreeModel
-
valueForPathChanged
public void valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)- Specified by:
valueForPathChangedin interfacejavax.swing.tree.TreeModel
-
addTreeModelListener
public void addTreeModelListener(javax.swing.event.TreeModelListener lnr)
- Specified by:
addTreeModelListenerin interfacejavax.swing.tree.TreeModel
-
removeTreeModelListener
public void removeTreeModelListener(javax.swing.event.TreeModelListener lnr)
- Specified by:
removeTreeModelListenerin interfacejavax.swing.tree.TreeModel
-
getBaseModel
public javax.swing.tree.TreeModel getBaseModel()
Returns the underlying, unmasked, model.- Returns:
- base tree model
-
setBaseModel
public void setBaseModel(javax.swing.tree.TreeModel base)
Sets the underlying, unmasked, model.- Parameters:
base- new base model
-
getMask
public MaskTreeModel.Mask getMask()
Returns the currently active mask.- Returns:
- mask, may be null for full inclusion
-
setMask
public void setMask(MaskTreeModel.Mask mask)
Sets the mask for defning inclusion of nodes in the base model. A null mask is used for full inclusion (and will be more efficient than one for whichisIncludedalways returns true).If the supplied
maskmatches the previously installed one by equality, no action is performed. So it's not essential that mask implementations implement equals/hashCode, but it may be beneficial.- Parameters:
mask- new mask, or null for full inclusion
-
getNodeCount
public int getNodeCount()
Returns the total number of nodes in this model.- Returns:
- node count
-
-