# Interface TreePlotModel<N,Row,Column,Color,Font>

Type Parameters:
  `N` - the type of nodes

All Known Implementing Classes:
  `DefaultTreePlotModel, SwingTreePlotModel`

public interface TreePlotModel<N,Row,Column,Color,Font>
Main interface for the model part of TreePlot.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Iterable<N>`
  `depthFirstIterator(N parent)`
  Creates and returns an iterable that traverses the subhierarchy rooted at the give node in depth-first order.
  `Object`
  `getAggregateValue(N node, TreeMapField field)`
  Returns the aggregated value of a variable for a given node.
  `com.macrofocus.geom.GeneralPath`
  `getCH(N node, TreeMapField xVariable, TreeMapField yVariable)`
  `Iterable<N>`
  `getChildren(N parent)`
  Returns an iterator of the children of the given node.
  `com.macrofocus.igraphics.CPColor<Color>`
  `getColor(N node)`
  Gets the color of the given node.
  `Class<?>`
  `getColumnClass(Column columnIndex)`
  Returns the most specific superclass for all the cell values in the column.
  `int`
  `getColumnCount()`
  Returns the number of columns in the model.
  `String`
  `getColumnName(Column columnIndex)`
  Returns the name of the column at `columnIndex`.
  `N`
  `getCurrentRoot()`
  Gets the currently selected root node from which the treemap should be displayed.
  `MutableFilter<N>`
  `getFilter()`
  Obtains the model used for filtering nodes in the treemap.
  `Selection<N>`
  `getHighlighting()`
  Obtains the model used to highlight nodes in the treemap.
  `double`
  `getMaximumSize()`
  Corresponds to area in map.
  `double`
  `getMaximumSize(N parent)`
  Corresponds to area in map.
  `com.macrofocus.geom.Ellipse2D`
  `getMEC(N node, TreeMapField xVariable, TreeMapField yVariable)`
  `Double`
  `getNumericMax(TreeMapField<N,Column> columnIndex)`
  Gets the maximum value contained in the specified column.
  `Double`
  `getNumericMax(TreeMapField columnIndex, N root)`
  Gets the maximum value contained in the specified column.
  `Double`
  `getNumericMin(TreeMapField<N,Column> columnIndex)`
  Gets the minimum value contained in the specified column.
  `Double`
  `getNumericMin(TreeMapField columnIndex, N root)`
  Gets the minimum value contained in the specified column.
  `N`
  `getParent(N node)`
  Gets the parent node of the given node.
  `MutableSingleSelection<N>`
  `getProbing()`
  Obtains the model used for probing (aka mouse over).
  `N`
  `getRoot()`
  Returns the root node of the treemap.
  `MutableFilter<N>`
  `getSearch()`
  Obtains the model used to carry out search in the treemap.
  `MutableSelection<N>`
  `getSelection()`
  Obtains the model used for selecting nodes in the treemap.
  `TreePlotSettings<Color,Font>`
  `getSettings()`
  Gets the settings currently selected.
  `double`
  `getSize(N node)`
  Corresponds to area in map.
  `String`
  `getStringValue(N node, TreeMapField field, TreeMapFieldSettings<Color,Font> settings)`
  Returns the string value for the cell at `columnIndex` and of `node`.
  `TreeMapField`
  `getTreeMapField(int columnIndex)`
  Gets the field corresponding to the specified column index.
  `TreeMapField`
  `getTreeMapField(String columnName)`
  Gets the field corresponding to the specified column name.
  `TreeMapModel<N,Row,Column,Color,Font>`
  `getTreeMapModel()`
  `Object`
  `getValueAt(N node, Column columnIndex)`
  Returns the value for the cell at `columnIndex` and of `node`.
  `Iterable<TreeMapField<N,Column>>`
  `getXTreeMapFields()`
  `MutableSingleSelection<TreeMapField<N,Column>>`
  `getXVariable()`
  `Iterable<TreeMapField<N,Column>>`
  `getYTreeMapFields()`
  `MutableSingleSelection<TreeMapField<N,Column>>`
  `getYVariable()`
  `boolean`
  `hasNoChildren(N node)`
  Tells whether the given node is a leaf node or not.
  `boolean`
  `isLeaf(N node)`
  `boolean`
  `isNumericType(TreeMapField<N,Column> field)`
  `boolean`
  `isRoot(N node)`
  Tells whether the given node is the root node or not.
  `boolean`
  `isTemporalType(TreeMapField<N,Column> field)`
  `boolean`
  `isVisualType(TreeMapField<N,Column> field)`
  `void`
  `setCurrentRoot(N currentRoot)`
  Sets the currently selected root node from which the treemap should be displayed.

- ## Method Details

  - ### isNumericType

    boolean isNumericType(TreeMapField<N,Column> field)

  - ### isTemporalType

    boolean isTemporalType(TreeMapField<N,Column> field)

  - ### isVisualType

    boolean isVisualType(TreeMapField<N,Column> field)

  - ### getTreeMapModel

    TreeMapModel<N,Row,Column,Color,Font> getTreeMapModel()

  - ### getXVariable

    MutableSingleSelection<TreeMapField<N,Column>> getXVariable()

  - ### getXTreeMapFields

    Iterable<TreeMapField<N,Column>> getXTreeMapFields()

  - ### getYVariable

    MutableSingleSelection<TreeMapField<N,Column>> getYVariable()

  - ### getYTreeMapFields

    Iterable<TreeMapField<N,Column>> getYTreeMapFields()

  - ### getSize

    double getSize(N node)
    Corresponds to area in map.
    Parameters:
      `node` - the node.
    Returns:
      the area

  - ### getMaximumSize

    double getMaximumSize()
    Corresponds to area in map.
    Returns:
      the maximum area

  - ### getMaximumSize

    double getMaximumSize(N parent)
    Corresponds to area in map.
    Returns:
      the maximum area

  - ### getRoot

    N getRoot()
    Returns the root node of the treemap.
    Returns:
      the root node.

  - ### getCurrentRoot

    N getCurrentRoot()
    Gets the currently selected root node from which the treemap should be displayed.
    Returns:
      the currently selected root node.

  - ### setCurrentRoot

    void setCurrentRoot(N currentRoot)
    Sets the currently selected root node from which the treemap should be displayed.
    Parameters:
      `currentRoot` - the root node to use for display.

  - ### getProbing

    MutableSingleSelection<N> getProbing()
    Obtains the model used for probing (aka mouse over).
    Returns:
      the model used for probing.

  - ### getHighlighting

    Selection<N> getHighlighting()
    Obtains the model used to highlight nodes in the treemap.
    Returns:
      the model used for highlighting.

  - ### getSelection

    MutableSelection<N> getSelection()
    Obtains the model used for selecting nodes in the treemap.
    Returns:
      the model used for selection.

  - ### getFilter

    MutableFilter<N> getFilter()
    Obtains the model used for filtering nodes in the treemap.
    Returns:
      the model used for filtering.

  - ### getSearch

    MutableFilter<N> getSearch()
    Obtains the model used to carry out search in the treemap.
    Returns:
      the model used for searching.

  - ### getSettings

    TreePlotSettings<Color,Font> getSettings()
    Gets the settings currently selected.
    Returns:
      the settings.

  - ### getNumericMax

    Double getNumericMax(TreeMapField<N,Column> columnIndex)
    Gets the maximum value contained in the specified column.
    Parameters:
      `columnIndex` - the index of the column.
    Returns:
      the maximum value.

  - ### getNumericMin

    Double getNumericMin(TreeMapField<N,Column> columnIndex)
    Gets the minimum value contained in the specified column.
    Parameters:
      `columnIndex` - the index of the column.
    Returns:
      the minimum value.

  - ### getNumericMax

    Double getNumericMax(TreeMapField columnIndex, N root)
    Gets the maximum value contained in the specified column.
    Parameters:
      `columnIndex` - the index of the column.
    Returns:
      the maximum value.

  - ### getNumericMin

    Double getNumericMin(TreeMapField columnIndex, N root)
    Gets the minimum value contained in the specified column.
    Parameters:
      `columnIndex` - the index of the column.
    Returns:
      the minimum value.

  - ### depthFirstIterator

    Iterable<N> depthFirstIterator(N parent)
    Creates and returns an iterable that traverses the subhierarchy rooted at the give node in depth-first order. The first node returned by the iterator's next() method is the leftmost leaf.
    Parameters:
      `parent` - the root of the hierarchy to traverse
    Returns:
      an iterable that traverses the subtree rooted at this node in depth-first order.

  - ### getTreeMapField

    TreeMapField getTreeMapField(int columnIndex)
    Gets the field corresponding to the specified column index.
    Parameters:
      `columnIndex` - the index of the column.
    Returns:
      the field.

  - ### getTreeMapField

    TreeMapField getTreeMapField(String columnName)
    Gets the field corresponding to the specified column name.
    Parameters:
      `columnName` - the name of the column.
    Returns:
      the field.

  - ### hasNoChildren

    boolean hasNoChildren(N node)
    Tells whether the given node is a leaf node or not.
    Parameters:
      `node` - the node
    Returns:
      true if it is a leaf node, false otherwise.

  - ### isLeaf

    boolean isLeaf(N node)

  - ### getParent

    N getParent(N node)
    Gets the parent node of the given node.
    Parameters:
      `node` - the node
    Returns:
      its parent

  - ### getColumnName

    String getColumnName(Column columnIndex)
    Returns the name of the column at `columnIndex`. Note: this name does not need to be unique; two columns in a table can have the same name.
    Parameters:
      `columnIndex` - the index of the column
    Returns:
      the name of the column

  - ### getValueAt

    Object getValueAt(N node, Column columnIndex)
    Returns the value for the cell at `columnIndex` and of `node`.
    Parameters:
      `node` - the node whose value is to be queried
      `columnIndex` - the column whose value is to be queried
    Returns:
      the value Object at the specified cell

  - ### getAggregateValue

    Object getAggregateValue(N node, TreeMapField field)
    Returns the aggregated value of a variable for a given node.
    Parameters:
      `node` - the node whose value is to be queried
      `field` - the field whose value is to be queried
    Returns:
      the value Object at the specified cell

  - ### getChildren

    Iterable<N> getChildren(N parent)
    Returns an iterator of the children of the given node.
    Parameters:
      `parent` - the parent node
    Returns:
      the children

  - ### getColor

    com.macrofocus.igraphics.CPColor<Color> getColor(N node)
    Gets the color of the given node.
    Parameters:
      `node` - the node.
    Returns:
      its color.

  - ### getStringValue

    String getStringValue(N node, TreeMapField field, TreeMapFieldSettings<Color,Font> settings)
    Returns the string value for the cell at `columnIndex` and of `node`.
    Parameters:
      `node` - the node whose value is to be queried
      `field` - the field whose value is to be queried
    Returns:
      the value Object at the specified cell

  - ### isRoot

    boolean isRoot(N node)
    Tells whether the given node is the root node or not.
    Parameters:
      `node` - the node
    Returns:
      true if it is the root node, false otherwise.

  - ### getColumnCount

    int getColumnCount()
    Returns the number of columns in the model.
    Returns:
      the number of columns in the model

  - ### getColumnClass

    Class<?> getColumnClass(Column columnIndex)
    Returns the most specific superclass for all the cell values in the column.
    Parameters:
      `columnIndex` - the index of the column
    Returns:
      the common ancestor class of the object values in the model.

  - ### getMEC

    com.macrofocus.geom.Ellipse2D getMEC(N node, TreeMapField xVariable, TreeMapField yVariable)

  - ### getCH

    com.macrofocus.geom.GeneralPath getCH(N node, TreeMapField xVariable, TreeMapField yVariable)