uk.ac.starlink.vo
Class MaskTreeModel

java.lang.Object
  extended by uk.ac.starlink.vo.MaskTreeModel
All Implemented Interfaces:
TreeModel

public class MaskTreeModel
extends Object
implements TreeModel

Wrapper 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
static interface MaskTreeModel.Mask
          Defines node inclusion in a masked tree.
 
Constructor Summary
MaskTreeModel(TreeModel base)
          Constructor.
 
Method Summary
 void addTreeModelListener(TreeModelListener lnr)
           
 TreeModel getBaseModel()
          Returns the underlying, unmasked, model.
 Object getChild(Object parent, int index)
           
 int getChildCount(Object parent)
           
 int getIndexOfChild(Object parent, Object child)
           
 MaskTreeModel.Mask getMask()
          Returns the currently active mask.
 int getNodeCount()
          Returns the total number of nodes in this model.
 Object getRoot()
           
 boolean isLeaf(Object node)
           
 void removeTreeModelListener(TreeModelListener lnr)
           
 void setBaseModel(TreeModel base)
          Sets the underlying, unmasked, model.
 void setMask(MaskTreeModel.Mask mask)
          Sets the mask for defning inclusion of nodes in the base model.
 void valueForPathChanged(TreePath path, Object newValue)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MaskTreeModel

public MaskTreeModel(TreeModel base)
Constructor.

Parameters:
base - underlying tree model
Method Detail

getRoot

public Object getRoot()
Specified by:
getRoot in interface TreeModel

isLeaf

public boolean isLeaf(Object node)
Specified by:
isLeaf in interface TreeModel

getChildCount

public int getChildCount(Object parent)
Specified by:
getChildCount in interface TreeModel

getChild

public Object getChild(Object parent,
                       int index)
Specified by:
getChild in interface TreeModel

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)
Specified by:
getIndexOfChild in interface TreeModel

valueForPathChanged

public void valueForPathChanged(TreePath path,
                                Object newValue)
Specified by:
valueForPathChanged in interface TreeModel

addTreeModelListener

public void addTreeModelListener(TreeModelListener lnr)
Specified by:
addTreeModelListener in interface TreeModel

removeTreeModelListener

public void removeTreeModelListener(TreeModelListener lnr)
Specified by:
removeTreeModelListener in interface TreeModel

getBaseModel

public TreeModel getBaseModel()
Returns the underlying, unmasked, model.

Returns:
base tree model

setBaseModel

public void setBaseModel(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 which isIncluded always returns true).

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


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.