Class ClusterGramCanvas

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Canvas
              |
              +--ClusterGramCanvas
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

class ClusterGramCanvas
extends java.awt.Canvas

Create a ClusterGram canvas and display the colored green/red similarity table in a popup window.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The MAExplorer Mozilla and Legal files are available on http://maexplorer.sourceforge.net/.

Version:
$Date: 2003/07/07 21:40:41 $ $Revision: 1.9 $
Author:
P. Lemkin (NCI), G. Thornwall (SAIC), NCI-Frederick, Frederick, MD
See Also:
MAExplorer Home, DrawClusterGram, HierClustNode, Serialized Form

Inner classes inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
private  boolean addKmeansDataFlag
          flag: if cdg.plotMode==mae.PLOT_KMEANS_CLUSTERGRAM)
private  int botEdge
           
private  int boxHeight
          size of a data box in the clustergram
private  int boxWidth
          bottom edge of box array
private  int[] boxX
          ULHC event hlr [0:nCols-1]
private  int[] boxY
          ULHC event hlr [0:nRows-1]
private  java.lang.String[] colLabel
          opt.
private  DrawClusterGram dcg
          parent class
private  float[] dGramDistL
          [0:nObj-2] log dist.
private  float[] dGramDistR
          [0:nObj-2] log dist.
private  float[] dGramDistS
          [0:nObj-2] log dist.
private  float[] dGramEnumOrder
          [0:nObj-2] enumeration order
private  float[] dGramEOleft
          [0:nObj-2] left child enum order
private  float[] dGramEOright
          [0:nObj-2] right child enum order
private  int[] dGramLeftNNbr
          [0:nObj-2] Left Node Number
private  int[] dGramNodeNbr
          [0:nObj-2] Node Number
private  int[] dGramRightNNbr
          [0:nObj-2] Right Node Number
private  int dGramX1
          left horizontal size of dendrogram region
private  int dGramX2
          right horizontal size of dendrogram region
(package private)  int dGramZoomMag
          zoom in on dendrogram - set by DrawClusterGram checkbox
private  boolean didDataSetupFlag
          flag: set by setupData() if successful
private  boolean drawIntoImageFlag
          set if draw clustergram to GIF file
private  java.lang.String featuresStr
          current gene feature data
private  java.awt.FontMetrics fm
          font metrics for font
private  java.awt.Font font
          drawing font
private  int fontHeight
           
private  int fontLeading
           
private  int fontWidth
           
(package private)  boolean foundObjFlag
          found object row when clicked on it
private  java.lang.String genomicDataStr
          current gene genomic data
private  int guardRows
          # of extra rows so cover the viewport
(package private)  int iDataV
          col to norm by in [0:nDataV-1]
private  boolean isBoxSelectedFlag
          set by event handler mouse on click
private  int leftEdge
          left edge of box array
private  int leftLabel
          left edge of Left label
(package private) static MAExplorer mae
          link to global MAExplorer instance
(package private) static int MAX_COLORS
          maximum colors used - Dark green to dark red
private  float maxDgramDist
          max of dGramDistS[]
(package private) static int MIN_CANVAS_HEIGHT
          default canvas height
(package private) static int MIN_CANVAS_WIDTH
          default canvas width
private  int mouseModifiers
          set by event handler mouse coords on click
private  int nCols
          # of columns i.e.
private  int nRows
          # of rows i.e.
private  float[][] objDataV
          [0:maxGenes-1][0:nCols-1] normalized data for each object
private  java.lang.String oGifFileName
          GIF output file if used
private  GeneList orderedCL
          gene list for rows
(package private)  int preferredHeight
          preferred height size of entire canvas
(package private)  int preferredWidth
          preferred width size of entire canvas
private  java.awt.Color[] ratioColor
          used for color mapping
private  float[] ratioRange
          used for color mapping
private  int rightEdge
          right edge of box array
private  java.lang.String[] rowLabel
          row labels (Master_ID + MasterGeneName)
private  int[] rowMID
          row MID index
private  int scaleMapX
          position of scale map X
private  int scaleMapY
          position of scale map Y
(package private)  int selCol
          selected column set by event handler mouse on click
private  float selDist
          distance selected by clicking on dendrogram
(package private)  int selMID
          set by event handler on click
(package private)  int selRow
          selected row set by event handler mouse on click
private  boolean shortWidthFlag
          flag: plot narrower boxes
(package private)  int statVertOffset
          offset of status canvas if drawing it at top of GIF image canvas, else 0
private  int topEdge
          top edge of box array
private  HierClustNode tree
          hierarchical cluster tree
private  boolean useColNbrFlag
          flag: 1, 2, 3, ...
private  boolean useFullHPStageNameFlag
          flag: use full HP stage name for COL name
private  int vertLabelX
          vertical label ULHC
private  int vertLabelY1
          top y for vert label
private  int vertLabelY2
          bottom y for vert label
private  int xCursor
          x cursor set by event handler mouse coords on click
private  int yCursor
          y cursor set by event handler mouse coords on click
 
Fields inherited from class java.awt.Canvas
base, nameCounter, serialVersionUID
 
Fields inherited from class java.awt.Component
accessibleContext, actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dbg, dropTarget, enabled, eventMask, focusListener, focusListenerK, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
(package private) ClusterGramCanvas(MAExplorer mae, DrawClusterGram dcg, GeneList orderedCL, HierClustNode tree)
          ClusterGramCanvas() - Constructor to display expresion profile in canvas
 
Method Summary
private  void copyGenesInSubtreeToEGL()
          copyGenesInSubtreeToEGL() - Copy terminal genes in dendrogram subtree to E.G.L for box that was selected at (selRow,selCol) such that terminal genes LEQ selDist GT 0.0F and dcg.drawDendroGramFlag.
private  void drawDendrogram(java.awt.Graphics g, int r1, int r2)
          drawDendrogram() - draw dendrogram from row r1 to r2.
(package private)  boolean drawGifFile(java.lang.String oGifFileName)
          drawGifFile() - draw clustergram into Gif image file if in stand-alone mode.
private  void drawRow(java.awt.Graphics g, int r, float[] dataV)
          drawRow() - draw row of boxes, left & right label, save the coords.
(package private)  void drawScaleMap(java.awt.Graphics g)
          drawScaleMap() - draw the X/Y color scale map.
private  void drawSelectedHP(java.awt.Graphics g, int r1, int r2)
          drawSelectedHP() - draw selected box as white circle if the selected row is within [r1:r2].
(package private)  void drawVerticalLabels(java.awt.Graphics g)
          drawVerticalLabels() - Draw the vertical labels of samples
 java.awt.Dimension getMinimumSize()
          getMinimumSize() - get the minimum preferred size
 java.awt.Dimension getPreferredSize()
          getPreferredSize() - get the preferred size
 void paint(java.awt.Graphics g)
          paint() - draw ClusterGram [r1:r2] from scroller percentage and canvas height.
private  boolean selectObject(int xC, int yC)
          selectObject() - test mouse cursor to select row or box if within any box
(package private)  void setBoxSizes(java.awt.Graphics g)
          setBoxSizes() - set box sizes based on font metrics.
(package private)  void setCurrentGene(int xCursor, int yCursor, int mouseModifiers, boolean changeCurGeneFlag)
          setCurrentGene() - set current gene from (xCursor,yCursor) in ClusterGram.
(package private)  void setEGLtoSubTreeGenes(int[] subtreeNbrs)
          setEGLtoSubTreeGenes() - Copy genes to E.G.L.
private  java.awt.Color setRatioColor(float ratio, int n)
          setRatioColor() - map data ratio to color (used to color a box).
private  void setupData()
          setupData() - setup additional data arrays for ClusterGram
(package private)  void showGeneMsgsAndPlot(int mid, int selRow)
          showGeneMsgsAndPlot() - show quant & genomic data messages in MSG & in plot
private  void unpackTreeDgramLists(HierClustNode tree)
          unpackTreeDgramLists() - extract dGram arrays for drawing dendrograms
(package private)  void updateCurGene(int mid)
          updateCurGene() - set current gene by MID from PopupRegistry
(package private)  boolean updateData(GeneList orderedCL, HierClustNode tree)
          updateData() - update expression profile with new gene data
 
Methods inherited from class java.awt.Canvas
, addNotify, constructComponentName, getAccessibleContext, postsOldMouseEvents
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkGD, checkImage, checkImage, checkWindowClosingException, coalesceEvents, contains, contains, createChildHierarchyEvents, createHierarchyEvents, createImage, createImage, deliverEvent, disable, disableEvents, dispatchEvent, dispatchEventImpl, doLayout, enable, enable, enableEvents, enableInputMethods, eventEnabled, firePropertyChange, getAccessibleIndexInParent, getAccessibleStateSet, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getMaximumSize, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkit, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, initIDs, inside, invalidate, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, layout, lightweightPaint, lightweightPrint, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, numListening, paintAll, paintHeavyweightComponents, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, printHeavyweightComponents, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, readObject, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, resetGC, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, update, validate, writeObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

mae

static MAExplorer mae
link to global MAExplorer instance

MIN_CANVAS_WIDTH

static final int MIN_CANVAS_WIDTH
default canvas width

MIN_CANVAS_HEIGHT

static final int MIN_CANVAS_HEIGHT
default canvas height

MAX_COLORS

static final int MAX_COLORS
maximum colors used - Dark green to dark red

preferredHeight

int preferredHeight
preferred height size of entire canvas

preferredWidth

int preferredWidth
preferred width size of entire canvas

statVertOffset

int statVertOffset
offset of status canvas if drawing it at top of GIF image canvas, else 0

tree

private HierClustNode tree
hierarchical cluster tree

dcg

private DrawClusterGram dcg
parent class

objDataV

private float[][] objDataV
[0:maxGenes-1][0:nCols-1] normalized data for each object

maxDgramDist

private float maxDgramDist
max of dGramDistS[]

dGramDistS

private float[] dGramDistS
[0:nObj-2] log dist. between children

dGramDistR

private float[] dGramDistR
[0:nObj-2] log dist. between Right's children

dGramDistL

private float[] dGramDistL
[0:nObj-2] log dist. between Left's children

dGramEnumOrder

private float[] dGramEnumOrder
[0:nObj-2] enumeration order

dGramEOright

private float[] dGramEOright
[0:nObj-2] right child enum order

dGramEOleft

private float[] dGramEOleft
[0:nObj-2] left child enum order

dGramNodeNbr

private int[] dGramNodeNbr
[0:nObj-2] Node Number

dGramRightNNbr

private int[] dGramRightNNbr
[0:nObj-2] Right Node Number

dGramLeftNNbr

private int[] dGramLeftNNbr
[0:nObj-2] Left Node Number

ratioColor

private java.awt.Color[] ratioColor
used for color mapping

ratioRange

private float[] ratioRange
used for color mapping

shortWidthFlag

private boolean shortWidthFlag
flag: plot narrower boxes

addKmeansDataFlag

private boolean addKmeansDataFlag
flag: if cdg.plotMode==mae.PLOT_KMEANS_CLUSTERGRAM)

useColNbrFlag

private boolean useColNbrFlag
flag: 1, 2, 3, ... for COL name

useFullHPStageNameFlag

private boolean useFullHPStageNameFlag
flag: use full HP stage name for COL name

didDataSetupFlag

private boolean didDataSetupFlag
flag: set by setupData() if successful

foundObjFlag

boolean foundObjFlag
found object row when clicked on it

dGramZoomMag

int dGramZoomMag
zoom in on dendrogram - set by DrawClusterGram checkbox

font

private java.awt.Font font
drawing font

fm

private java.awt.FontMetrics fm
font metrics for font

fontHeight

private int fontHeight

fontWidth

private int fontWidth

fontLeading

private int fontLeading

guardRows

private int guardRows
# of extra rows so cover the viewport

nRows

private int nRows
# of rows i.e. genes

nCols

private int nCols
# of columns i.e. HPs

orderedCL

private GeneList orderedCL
gene list for rows

dGramX1

private int dGramX1
left horizontal size of dendrogram region

dGramX2

private int dGramX2
right horizontal size of dendrogram region

scaleMapX

private int scaleMapX
position of scale map X

scaleMapY

private int scaleMapY
position of scale map Y

vertLabelX

private int vertLabelX
vertical label ULHC

vertLabelY1

private int vertLabelY1
top y for vert label

vertLabelY2

private int vertLabelY2
bottom y for vert label

leftLabel

private int leftLabel
left edge of Left label

leftEdge

private int leftEdge
left edge of box array

rightEdge

private int rightEdge
right edge of box array

topEdge

private int topEdge
top edge of box array

botEdge

private int botEdge

boxWidth

private int boxWidth
bottom edge of box array

boxHeight

private int boxHeight
size of a data box in the clustergram

isBoxSelectedFlag

private boolean isBoxSelectedFlag
set by event handler mouse on click

selRow

int selRow
selected row set by event handler mouse on click

selCol

int selCol
selected column set by event handler mouse on click

iDataV

int iDataV
col to norm by in [0:nDataV-1]

mouseModifiers

private int mouseModifiers
set by event handler mouse coords on click

xCursor

private int xCursor
x cursor set by event handler mouse coords on click

yCursor

private int yCursor
y cursor set by event handler mouse coords on click

selMID

int selMID
set by event handler on click

selDist

private float selDist
distance selected by clicking on dendrogram

featuresStr

private java.lang.String featuresStr
current gene feature data

genomicDataStr

private java.lang.String genomicDataStr
current gene genomic data

boxX

private int[] boxX
ULHC event hlr [0:nCols-1]

boxY

private int[] boxY
ULHC event hlr [0:nRows-1]

colLabel

private java.lang.String[] colLabel
opt. column labels

rowLabel

private java.lang.String[] rowLabel
row labels (Master_ID + MasterGeneName)

rowMID

private int[] rowMID
row MID index

drawIntoImageFlag

private boolean drawIntoImageFlag
set if draw clustergram to GIF file

oGifFileName

private java.lang.String oGifFileName
GIF output file if used
Constructor Detail

ClusterGramCanvas

ClusterGramCanvas(MAExplorer mae,
                  DrawClusterGram dcg,
                  GeneList orderedCL,
                  HierClustNode tree)
ClusterGramCanvas() - Constructor to display expresion profile in canvas
Parameters:
mae - is the instance of MAExplorer
dcg - is the parent window
orderedCL - is the gene list for rows
tree - is the hierarchical cluster tree
See Also:
unpackTreeDgramLists(HierClustNode), updateData(GeneList, HierClustNode)
Method Detail

drawGifFile

boolean drawGifFile(java.lang.String oGifFileName)
drawGifFile() - draw clustergram into Gif image file if in stand-alone mode. This sets it up and lets paint() to the heavy lifting... *
Parameters:
oGifFileName - is the name of the GIF output file.
Returns:
false if unable to generate the image file.
See Also:
Component.repaint()

updateData

boolean updateData(GeneList orderedCL,
                   HierClustNode tree)
updateData() - update expression profile with new gene data
Parameters:
orderedCL - is the ordered gene list for rows
tree - hierarchical cluster tree
Returns:
true if succeed
See Also:
GeneList, HierClustNode, Component.repaint(), setupData(), unpackTreeDgramLists(HierClustNode)

unpackTreeDgramLists

private void unpackTreeDgramLists(HierClustNode tree)
unpackTreeDgramLists() - extract dGram arrays for drawing dendrograms
Parameters:
tree - hierarchical cluster tree
See Also:
HierClustNode

setupData

private void setupData()
setupData() - setup additional data arrays for ClusterGram
See Also:
Gene.isGeneProperty(int), GeneList, Util.cvtValueToStars(float, float, int, boolean)

getPreferredSize

public java.awt.Dimension getPreferredSize()
getPreferredSize() - get the preferred size
Overrides:
getPreferredSize in class java.awt.Component
Returns:
size of the window

getMinimumSize

public java.awt.Dimension getMinimumSize()
getMinimumSize() - get the minimum preferred size
Overrides:
getMinimumSize in class java.awt.Component
Returns:
size of the window

selectObject

private boolean selectObject(int xC,
                             int yC)
selectObject() - test mouse cursor to select row or box if within any box
Parameters:
xC - is the x coordinate selected in the window
yC - is the y coordinate selected in the window
Returns:
true if successful and set the appropriate values.

showGeneMsgsAndPlot

void showGeneMsgsAndPlot(int mid,
                         int selRow)
showGeneMsgsAndPlot() - show quant & genomic data messages in MSG & in plot
Parameters:
mid - is the master gene index
selRow - is the row selected if not -1
See Also:
MaHybridSample.getSpotDataStatic(int, boolean), SpotFeatures.getSpotFeatures(java.awt.Point, MaHybridSample), SpotFeatures.getSpotGenomicData(java.awt.Point, MaHybridSample), Util.cvf2s(float, int), Util.showFeatures(java.lang.String, java.lang.String), Util.showMsg(java.lang.String)

updateCurGene

void updateCurGene(int mid)
updateCurGene() - set current gene by MID from PopupRegistry
Parameters:
mid - is the master gene index
See Also:
ScrollPane.getScrollPosition(), ScrollPane.getViewportSize(), ScrollPane.setScrollPosition(int, int), showGeneMsgsAndPlot(int, int)

setCurrentGene

void setCurrentGene(int xCursor,
                    int yCursor,
                    int mouseModifiers,
                    boolean changeCurGeneFlag)
setCurrentGene() - set current gene from (xCursor,yCursor) in ClusterGram.
Parameters:
xCursor - of current gene
yCursor - of current gene
mouseModifiers - when selected the current gene
changeCurGeneFlag - is on if we should call the popup registry
See Also:
PopupRegistry.updateCurGene(int, int, java.lang.Object), Component.repaint(), selectObject(int, int), showGeneMsgsAndPlot(int, int)

setBoxSizes

void setBoxSizes(java.awt.Graphics g)
setBoxSizes() - set box sizes based on font metrics. If the dgc.drawDendroGramFlag is set, then add space to left of clustergram for the dendrogram to be drawn.
Parameters:
g - is graphics context

setRatioColor

private java.awt.Color setRatioColor(float ratio,
                                     int n)
setRatioColor() - map data ratio to color (used to color a box). Color is in (ratioMin : ratioMax]. i.e. ratioMin < ratio <= ratioMax for ratio <1.0 and ratioMin <= ratio < ratioMax for ratio >1.0
Parameters:
ratio - is the ratio to use in looking up the color
n - is the number of colors in map

drawRow

private void drawRow(java.awt.Graphics g,
                     int r,
                     float[] dataV)
drawRow() - draw row of boxes, left & right label, save the coords. Use this.font as the font size.
Parameters:
g - is graphics context
r - is the row in the cluster gram
dataV - is the data vector
See Also:
GeneList.isMIDinGeneList(int), setRatioColor(float, int)

copyGenesInSubtreeToEGL

private void copyGenesInSubtreeToEGL()
copyGenesInSubtreeToEGL() - Copy terminal genes in dendrogram subtree to E.G.L for box that was selected at (selRow,selCol) such that terminal genes LEQ selDist GT 0.0F and dcg.drawDendroGramFlag. [TODO] - needs to be debugged. Not picking up correct subset of the tree.
See Also:
HierClustNode.findSubtreeOfNodeNbrs(int), setEGLtoSubTreeGenes(int[])

setEGLtoSubTreeGenes

void setEGLtoSubTreeGenes(int[] subtreeNbrs)
setEGLtoSubTreeGenes() - Copy genes to E.G.L. (Edited Gene List)
Parameters:
subtreeNbrs - is the list of genes to be copied to the E.G.L.
See Also:
EditedGeneList.addGeneToEditedCL(int)

drawSelectedHP

private void drawSelectedHP(java.awt.Graphics g,
                            int r1,
                            int r2)
drawSelectedHP() - draw selected box as white circle if the selected row is within [r1:r2].
Parameters:
g - is the graphic context
r1 - starting row that is visible
r2 - ending row that is visible

drawVerticalLabels

void drawVerticalLabels(java.awt.Graphics g)
drawVerticalLabels() - Draw the vertical labels of samples
Parameters:
g - is the graphic context

drawScaleMap

void drawScaleMap(java.awt.Graphics g)
drawScaleMap() - draw the X/Y color scale map.
  RED                 BLACK             GREEN
  <1/8X 1/6X 1/4X 1/2X  1X    2X  4X  6X  >8X

   Selected Row[#row] Master_ID (if Y selected)
   Selected Col[#col] Sample name (if X & Y selected)
   Normalization Col[#iDataV] Norm Sample name (if X selected)
    (if X selected)
    (if X selected)
Parameters:
g - is the graphic context
See Also:
Util.cvf2s(float, int)

drawDendrogram

private void drawDendrogram(java.awt.Graphics g,
                            int r1,
                            int r2)
drawDendrogram() - draw dendrogram from row r1 to r2.
 The spacing between terminal nodes is boxHeight.
 The region for drawing dendrogram is dGramX1 to dGramX2.
 The 'enum order' is the spacing on particular ordered rows
 and is fractional for non-terminal nodes.
 We used the ordered hierarchical cluster data for nodes in [r1:r2].
   dGramDist[0:nObj-1] distance between children.
   dGramDistR[0:nObj-1] distance between Right children.
   dGramDistL[0:nObj-1] distance between Left children.
   dGramEnumOrder[0:nObj-1] enumeration order.
   dGramEOright[0:nObj-1] right child enum order.
   dGramEOleft[0:nObj-1] left child enum order.
   dGramNodeNbr[0:nObj-1] - Node Number
   dGramEOrightNNbr[0:nObj-1] - Right Node Number
   dGramLeftNNbr[0:nObj-1] - Left Node Number
Parameters:
g - is the graphic context
r1 - starting row that is visible
r1 - ending row that is visible

paint

public void paint(java.awt.Graphics g)
paint() - draw ClusterGram [r1:r2] from scroller percentage and canvas height. Redraw only what is visible...
Overrides:
paint in class java.awt.Canvas
Parameters:
g - is the graphic context
See Also:
DrawClusterGram.drawScaleMapAndVerticalLabels(java.awt.Graphics), ScrollPane.getHScrollbarHeight(), ScrollPane.getVAdjustable(), ScrollPane.getViewportSize(), WriteGifEncoder, WriteGifEncoder.writeFile(java.lang.String), copyGenesInSubtreeToEGL(), drawDendrogram(java.awt.Graphics, int, int), drawRow(java.awt.Graphics, int, float[]), drawScaleMap(java.awt.Graphics), drawSelectedHP(java.awt.Graphics, int, int), drawVerticalLabels(java.awt.Graphics), Component.repaint(), setBoxSizes(java.awt.Graphics)