pal.gui
Class TreePainter

java.lang.Object
  extended by pal.gui.TreePainter
All Implemented Interfaces:
Painter
Direct Known Subclasses:
TreePainterCircular, TreePainterNormal

public abstract class TreePainter
extends java.lang.Object
implements Painter

A class that can paint a tree into a Graphics object.

Version:
$Id: TreePainter.java,v 1.24 2003/08/16 23:48:26 matt Exp $
Author:
Alexei Drummond

Field Summary
protected  java.lang.String attName
           
static java.awt.Color BACKGROUND
           
static java.lang.String BOOTSTRAP_ATTRIBUTE_NAME
           
static java.awt.Color BOOTSTRAP_SUPPORT_COLOUR
           
static java.awt.Font DEFAULT_FONT
           
static java.lang.String DEFAULT_FONT_NAME
           
static int DEFAULT_FONT_SIZE
           
static int DEFAULT_FONT_STYLE
           
static java.awt.Color FOREGROUND
           
static LabelDisplayer HILITED_LABEL_DISPLAY
           
static java.awt.Color NORMAL_LABEL_COLOR
           
static LabelDisplayer NORMAL_LABEL_DISPLAY
           
protected  boolean showingInternalLabels
          determines whether internal nodes are labelled
 java.lang.String title_
           
 PositionedNode treeNode
           
 
Constructor Summary
TreePainter(Tree toDisplay, java.lang.String title, boolean showTitle)
           
 
Method Summary
protected  void doScale(java.awt.Graphics g, double xScale, int x, int y)
           
 void doTitle(java.awt.Graphics g, int x, int y)
           
static void drawSymbol(java.awt.Graphics g, int x, int y, int width, int index)
           
protected  int getBootstrapValue(PositionedNode node)
          Returns -1 if no trap value available
protected  java.awt.Font getLabelFont()
           
protected  int getLongestIdentifierPixelWidth(java.awt.FontMetrics fm)
           
protected static double getMaxLeafTime(Node node)
           
protected  LabelDisplayer getNodeDisplay(Node n, LabelDisplayer defaultDisplay)
           
protected  java.lang.String getNodeName(Node node)
           
 int getPenWidth()
           
protected  double getSizeOfScale(double target)
           
 TimeOrderCharacterData getTimeOrderCharacterData()
           
 java.lang.String getTitle()
           
protected  Tree getTree()
           
 boolean isShowingInternalLabels()
           
 boolean isShowingNodeHeights()
           
 boolean isShowTitle()
           
 boolean isUsingColor()
           
 boolean isUsingSymbols()
           
 void setAttributeName(java.lang.String name)
           
 void setColouriser(NameColouriser nc)
           
 void setLabelFont(java.awt.Font f)
          Set the font used to display labels
 void setLabelFontSize(int size)
          Set the font used to display labels
 void setLabelMapping(LabelMapping lp)
           
 void setMaxHeight(double maxHeight)
          sets the maximum height of plot.
 void setPenWidth(int p)
           
 void setShowingNodeHeights(boolean s)
           
 void setTimeOrderCharacterData(TimeOrderCharacterData tocd)
           
 void setTitle(java.lang.String title)
           
 void setTree(Tree tree)
           
 void setTreeImpl(Tree tree)
          may be implemented by sub classes
 void setUsingColor(boolean use)
           
 void setUsingSymbols(boolean use)
          Sets whether the tree is painted with symbols.
protected  void standardTreePrep()
          Rotates the tree by leaf count, creates a positioned node version of the trees root and calculates postions and width and height information.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface pal.gui.Painter
getPreferredSize, paint, paint
 

Field Detail

BACKGROUND

public static final java.awt.Color BACKGROUND

FOREGROUND

public static final java.awt.Color FOREGROUND

NORMAL_LABEL_COLOR

public static final java.awt.Color NORMAL_LABEL_COLOR

NORMAL_LABEL_DISPLAY

public static final LabelDisplayer NORMAL_LABEL_DISPLAY

HILITED_LABEL_DISPLAY

public static final LabelDisplayer HILITED_LABEL_DISPLAY

BOOTSTRAP_SUPPORT_COLOUR

public static final java.awt.Color BOOTSTRAP_SUPPORT_COLOUR

BOOTSTRAP_ATTRIBUTE_NAME

public static final java.lang.String BOOTSTRAP_ATTRIBUTE_NAME
See Also:
Constant Field Values

DEFAULT_FONT_SIZE

public static final int DEFAULT_FONT_SIZE
See Also:
Constant Field Values

DEFAULT_FONT_STYLE

public static final int DEFAULT_FONT_STYLE
See Also:
Constant Field Values

DEFAULT_FONT_NAME

public static final java.lang.String DEFAULT_FONT_NAME
See Also:
Constant Field Values

DEFAULT_FONT

public static final java.awt.Font DEFAULT_FONT

treeNode

public PositionedNode treeNode

title_

public java.lang.String title_

attName

protected java.lang.String attName

showingInternalLabels

protected boolean showingInternalLabels
determines whether internal nodes are labelled

Constructor Detail

TreePainter

public TreePainter(Tree toDisplay,
                   java.lang.String title,
                   boolean showTitle)
Parameters:
toDisplay - the tree being painted.
title - the title of the tree.
showTitle - true if a title is being displayed.
nc - A name colouriser, may be null.
Method Detail

getBootstrapValue

protected int getBootstrapValue(PositionedNode node)
Returns -1 if no trap value available


standardTreePrep

protected void standardTreePrep()
Rotates the tree by leaf count, creates a positioned node version of the trees root and calculates postions and width and height information.


setMaxHeight

public final void setMaxHeight(double maxHeight)
sets the maximum height of plot. if this height is smaller than root height then only a proportion of tree is drawn.


setAttributeName

public final void setAttributeName(java.lang.String name)

setPenWidth

public final void setPenWidth(int p)

getPenWidth

public final int getPenWidth()

setTree

public final void setTree(Tree tree)

setTreeImpl

public void setTreeImpl(Tree tree)
may be implemented by sub classes


setUsingColor

public final void setUsingColor(boolean use)

isUsingColor

public final boolean isUsingColor()

setShowingNodeHeights

public final void setShowingNodeHeights(boolean s)

isShowingNodeHeights

public final boolean isShowingNodeHeights()

isShowingInternalLabels

public final boolean isShowingInternalLabels()

getTimeOrderCharacterData

public final TimeOrderCharacterData getTimeOrderCharacterData()

setTimeOrderCharacterData

public final void setTimeOrderCharacterData(TimeOrderCharacterData tocd)

isUsingSymbols

public final boolean isUsingSymbols()

setUsingSymbols

public final void setUsingSymbols(boolean use)
Sets whether the tree is painted with symbols. This can only be set to true of a TimeOrderCharacterData has been set.


getTree

protected final Tree getTree()

getSizeOfScale

protected final double getSizeOfScale(double target)

getMaxLeafTime

protected static final double getMaxLeafTime(Node node)

drawSymbol

public static final void drawSymbol(java.awt.Graphics g,
                                    int x,
                                    int y,
                                    int width,
                                    int index)

isShowTitle

public final boolean isShowTitle()

setColouriser

public final void setColouriser(NameColouriser nc)

setLabelMapping

public final void setLabelMapping(LabelMapping lp)

setTitle

public final void setTitle(java.lang.String title)

getNodeName

protected final java.lang.String getNodeName(Node node)

getTitle

public final java.lang.String getTitle()

doTitle

public final void doTitle(java.awt.Graphics g,
                          int x,
                          int y)

doScale

protected final void doScale(java.awt.Graphics g,
                             double xScale,
                             int x,
                             int y)

getNodeDisplay

protected final LabelDisplayer getNodeDisplay(Node n,
                                              LabelDisplayer defaultDisplay)

getLongestIdentifierPixelWidth

protected final int getLongestIdentifierPixelWidth(java.awt.FontMetrics fm)

setLabelFont

public final void setLabelFont(java.awt.Font f)
Set the font used to display labels


setLabelFontSize

public final void setLabelFontSize(int size)
Set the font used to display labels


getLabelFont

protected final java.awt.Font getLabelFont()