net.sourceforge.olduvai.treejuxtaposer.drawer
Class AccordionTreeDrawer

java.lang.Object
  extended by net.sourceforge.olduvai.accordiondrawer.AccordionDrawer
      extended by net.sourceforge.olduvai.treejuxtaposer.drawer.AccordionTreeDrawer
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener, javax.media.opengl.GLEventListener
Direct Known Subclasses:
AccordionTreeDrawerFinal

public abstract class AccordionTreeDrawer
extends AccordionDrawer

An abstract class representing a multi-scale rectangular grid on which a tree consisting of horizontal and vertical line segments is drawn Fills in the fields of the abstract class AccordionDrawer based on information from the Tree class.

Version:
2.2
Author:
Tamara Munzner, Li Zhang
See Also:
AccordionDrawer, AccordionTreeDrawerFinal, Tree, TreeNode, GridCell

Field Summary
private  int coloredNode
          Index for colored node in getLeftMostNodes(TreeNode, TreeNode).
static int countDrawnFrame
          Count of number of objects drawn for the current frame, benchmark.
static int countDrawnScene
          Count of number of objects drawn for the current scene, benchmark.
static int cumFrameTime
          Cumulative time for a frame, benchmark.
protected  int[] drawnlabelsize
          width and height of last mouseover label drawn
protected  LabelBox flashLabelBox
          Label box for the flash (mouse-over) drawing object
static boolean fullyQualified
          If true, all nodes will have fully qualified names.
 int internalDrawCount
          Debugging value, for information of drawing efficiency.
protected  boolean labelAtLeaves
          set to true when we want to draw labels only at the leaf level.
protected  int[] labelbuffer
          Amount of space in X and Y (in pixels) that labels must be separated by.
protected  int[] labeloffset
          Label offset for leaf nodes.
protected  java.nio.FloatBuffer labelPixels
          framebuffer pixels from last mouseover label drawn
 int leafDrawCount
          Debugging value, for information of drawing efficiency.
protected  int[] lineLength
          Length of nodes for horizontal and vertical edges.
protected  java.nio.FloatBuffer[] linePixel
          Drawing buffer for mouse-over drawing/undrawing.
protected  int[][] linePos
          Location of tree edges (for flash drawing) that we are storing in linePixel
 int maxFontHeight
          Maximum size of fonts.
 int minFontHeight
          Minimum size of fonts.
protected  java.awt.Color objectColor
          Default color for objects that aren't marked.
 int pickFuzz
          Distance to an object in pixels that is close enough for a successful pick.
 float pixelDiv
          Inverted block size: the minimum partition size is 1/pixelDiv, if a section of tree requires culling this matters.
private  double pixelSize
          Size of block/pixel used for rendering.
 int popupFontHeight
          Size of fonts for mouse-over highlighting.
protected  TreeNode rootNode
          Root of the tree.
 Tree tree
          Tree that is drawn in this drawer's canvas.
private  int uncoloredNode
          Index for uncolored node in getLeftMostNodes(TreeNode, TreeNode).
 
Fields inherited from class net.sourceforge.olduvai.accordiondrawer.AccordionDrawer
backgroundColor, backplane, baseBox, basePass, bff, canvas, clearCount, continueFrame, continueStart, debugOutput, defaultFocusCell, DEFAULTFONTFAMILY, DEFAULTLABELFONT, DEFAULTLABELFONTSIZE, DEFAULTTITLEFONT, DEFAULTTITLEFONTSIZE, dequeueChunkPerTimeCheck, dimbrite, dimcolors, doBox, doDoubleBuffer, doingFlash, doublebuffer, drawBackground, drawGeoms, drawGrid, drawlabels, drawnLabels, dumpstats, dynamicStart, dynamicTime, FAR_FROM_STUCK, flashBox, flashBoxOld, flashBoxWidth, flashCol, flashGeom, flashGeomOld, flashX, flashXOld, flashY, flashYOld, focusCell, fontInitialized, forceRedraw, frameNum, gridplane, groupPass, hiliteplane, ignoreProgressive, inflateIncr, interactionplane, key, labelBackColor, labelBackHiColor, labelbgplane, labelColor, labeldrawback, labelHiColor, labelplane, labelposright, linkednav, loaded, MAX_STUCK_X, MAX_STUCK_Y, MIN_STUCK_X, MIN_STUCK_Y, minCellDims, minContextInside, minContextPeriphery, mouseDragging, mouseMoveAnimSteps, mouseMoveAnimStepsNPR, mouseNow, mousePrev, noflash, now, numAnimSteps, numCellsDrawnThisFrame, objplane, rubberbandColor, showdiffs, snapShotExtension, snapshotName, snapShotWriter, splitAxis, startFrame, stats, takeSnapshot, textPass, ToDrawQ, toMove, uniformSplits, winsize, X, Y
 
Constructor Summary
AccordionTreeDrawer(Tree t, int w, int h, javax.swing.JProgressBar jpb)
          Class constructor for new tree drawers.
 
Method Summary
 void addToDrawQueue(java.lang.Object r)
          Add an object (RangeInTree, or TreeNode) to the drawing queue AccordionDrawer#toDrawQ
private  void buildCells(javax.swing.JProgressBar jpb)
          Build cells for each TreeNode.
 void decreaseLabelBuffer(int xy)
          Decrement the size for the label buffer in the given axis by 1.
 void decreaseMaxFontHeight()
          Decrement maximum font height by 1.
 void decreaseMinFontHeight()
          Decrement minimum font height by 1.
 void doFlash()
          Flash drawing wrapper, must be called for flash requests; flashDraw() is later called back within a drawing cycle.
 void drawGeom(CellGeom cg, DrawableRange r)
          Draws a geometric object (treenode here) within a containing cell A node is drawn when it's larger than some ratio of block value, as determined from the drawRange function, or when a node is marked individually, such as mouse over highlighting or single node marking
protected  void drawPostFrame()
          Function that runs following a frame.
protected  void drawPostScene()
          Function that runs following a scene's completion.
protected  void drawPreContFrame()
          Function that runs before a frame that is being drawn for a continued scene.
protected  void drawPreNewFrame()
          Function that runs prior to a new scene.
 void drawRange(DrawableRange r)
          Draw a given range.
 void drawRange(SplitLine sl)
          Stub function.
protected  void finalize()
          Finalize function for this class, which calls shutdown(), and might not be necessary.
 void flashDraw()
          Not to be called directly, only called by doFlash() via flag doingFlash that redirects in a normal drawing call.
 javax.media.opengl.GLAutoDrawable getCanvasDrawable()
          Canvas accessor.
abstract  java.util.ArrayList getColorsForRange(int min, int max)
          Get the list of colors for the given split line index range
 int getLabelBuffer(int xy)
          Get the size for the label buffer in the given axis by 1.
 TreeNode getLeaf(int leafNum)
          Get the leaf indexed by the input value.
private  TreeNode[] getLeftMostNodes(TreeNode minChild, TreeNode maxChild)
          Get the "left most nodes".
 java.util.TreeSet getListOfLeaves()
          Get the list of leaves, as determined by the visible (drawing) set from the partition list of split axis Y.
 int getMaxFontHeight()
          Get the current maximum font height.
private  StaticSplitLine getMaxLineX(java.util.ArrayList children)
          Helper function for buildCells(JProgressBar).
 int getMinFontHeight()
          Get the current minimum font height.
 TreeNode getNodeByKey(int key)
          Node access by node key.
 TreeNode getNodeByName(java.lang.String name)
          Node access by node name.
 java.awt.Color getObjectColor()
          Get the objectColor.
abstract  RangeList getRangeByKey(int key)
          Get a range list by the given key.
 Tree getTree()
          Get the tree that this drawer represents.
 void increaseLabelBuffer(int xy)
          Increment the size for the label buffer in the given axis by 1.
 void increaseMaxFontHeight()
          Increment maximum font height by 1.
 void increaseMinFontHeight()
          Increment minimum font height by 1.
 void initCells(javax.swing.JProgressBar jpb)
          Initializes split lines, and builds cells for each tree node.
 InteractionBox makeBox(CellGeom cg)
          Create box enclosing the subtree beneath input node/edge.
 CellGeom pickGeom(int x, int y)
          Pick the object at the given X/Y pixel location.
protected  void preDraw(javax.media.opengl.GLAutoDrawable canvas)
          Stub function.
 void resetSplitValues()
          Stub function.
 void setLabelBuffer(int buffer)
          Set the size for the label buffer in both axes.
 void setLabelBuffer(int buffer, int xy)
          Set the size for the label buffer in the given axis.
 void setMaxFontHeight(int fontheight)
          Set the maximum font height to the given value.
 void setMinFontHeight(int fontheight)
          Set the minimum font height to the given value.
 void setObjectColor(java.awt.Color objectColor)
          Set the objectColor.
 void shutdown()
          Clear the objects initiated in ATD.
private  void updateMinLineX(java.util.ArrayList children, StaticSplitLine newMinLine)
          Helper function for buildCells(JProgressBar).
 
Methods inherited from class net.sourceforge.olduvai.accordiondrawer.AccordionDrawer
animatedReset, clear, clearQueue, continueFrame, createBoxFromCells, createBoxFromCells, createRectFromPick, customGLInit, decreaseLineThickness, display, displayChanged, doFrameMove, doSnapshot, drawEnd, drawFrame, drawSplits, drawStart, drawText, endAllTransitions, forceRedraw, getBackgroundColor, getBFF, getCanvas, getColorsForCellGeom, getDescent, getDimBrite, getDimColors, getDoubleBuffer, getDrawGeoms, getDrawGrid, getDrawLabels, getDrawnLabels, getDumpStats, getFlashBox, getFlashCol, getFrameNum, getGL, gethiliteplane, getInflateIncr, getKey, getLabelBackColor, getLabelBackHiColor, getLabelColor, getLabelDrawBack, getLabelHiColor, getLabelplane, getLabelPosRight, getLineThickness, getLinkedNav, getMinCellDims, getMouseMoveAnimSteps, getNoFlash, getNumAnimSteps, getObjplane, getPixelSize, getRubberbandColor, getSplitAxis, getToDrawQ, getWinMax, getWinsize, increaseLineThickness, incrementFrameNumber, init, initializeFont, initSplitLines, isDoingFlash, keepDrawing, keepMoving, moveStuckPosition, newPixelDiv, newSnapshotName, requestRedraw, reset, resetGridUniform, resetHighlightPlane, resetObjectPlane, reshape, s2w, s2w, s2w, saveScreenShot, seedQueue, setBackgroundColor, setCellHighlight, setClearColor, setColorGL, setColorGLAlpha, setDimBrite, setDimColors, setDoubleBuffer, setDrawGeoms, setDrawGrid, setDrawLabels, setDrawSplits, setDumpStats, setFlash, setFocusCell, setHighlightPlane, setInflateIncr, setKey, setLabelBackColor, setLabelBackHiColor, setLabelColor, setLabelDrawBack, setLabelHiColor, setLabelPosRight, setLineThickness, setLinkedNav, setMinCellDims, setMouseMoveAnimSteps, setNoFlash, setNumAnimSteps, setObjectPlane, setRubberbandColor, startNewFrame, stringWidth, toggleDimBrite, toggleDimColors, toggleDrawGeoms, toggleDrawGrid, toggleDrawLabels, toggleDrawSplits, toggleDumpStats, toggleLabelDrawBack, toggleLabelPosRight, toggleLinkedNav, toggleNoFlash, w2s, whoCalledMe
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.awt.event.MouseListener
mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased
 
Methods inherited from interface java.awt.event.MouseMotionListener
mouseDragged, mouseMoved
 
Methods inherited from interface java.awt.event.KeyListener
keyPressed, keyReleased, keyTyped
 

Field Detail

labeloffset

protected int[] labeloffset
Label offset for leaf nodes.


labelbuffer

protected int[] labelbuffer
Amount of space in X and Y (in pixels) that labels must be separated by.


pixelDiv

public final float pixelDiv
Inverted block size: the minimum partition size is 1/pixelDiv, if a section of tree requires culling this matters.

See Also:
Constant Field Values

labelPixels

protected java.nio.FloatBuffer labelPixels
framebuffer pixels from last mouseover label drawn


flashLabelBox

protected LabelBox flashLabelBox
Label box for the flash (mouse-over) drawing object


linePixel

protected java.nio.FloatBuffer[] linePixel
Drawing buffer for mouse-over drawing/undrawing.


lineLength

protected int[] lineLength
Length of nodes for horizontal and vertical edges.


linePos

protected int[][] linePos
Location of tree edges (for flash drawing) that we are storing in linePixel


drawnlabelsize

protected int[] drawnlabelsize
width and height of last mouseover label drawn


minFontHeight

public int minFontHeight
Minimum size of fonts.


maxFontHeight

public int maxFontHeight
Maximum size of fonts.


popupFontHeight

public int popupFontHeight
Size of fonts for mouse-over highlighting.


pickFuzz

public int pickFuzz
Distance to an object in pixels that is close enough for a successful pick. Good for picking in sparse regions.


labelAtLeaves

protected boolean labelAtLeaves
set to true when we want to draw labels only at the leaf level. Functionality removed: ambiguous definition of the problem // - only way to effectively draw best labels for subtrees at the leaf // level is to draw them after rendering tree, drawing labels last // isn't supported by progressive rendering // - best attempts either draw: // 1) very few labels // - greedy label on thin subtree will show very high ancestor in tree // - not drawing subsequent nodes that are descendants of the drawn labels shows little information // 2) lots of labels, but mixed hierarchy in same subtree region // - mammals and rats may appear at leaf level at the same time // - descendant subtrees probably shouldn't be shown with labeled ancestors


tree

public Tree tree
Tree that is drawn in this drawer's canvas.


rootNode

protected TreeNode rootNode
Root of the tree.


fullyQualified

public static boolean fullyQualified
If true, all nodes will have fully qualified names. Fully qualified names are good for trees that look like file systems. Fully qualified names are bad for trees that look like phylogenies, or guaranteed unique tree nodes.


countDrawnFrame

public static int countDrawnFrame
Count of number of objects drawn for the current frame, benchmark.


countDrawnScene

public static int countDrawnScene
Count of number of objects drawn for the current scene, benchmark.


cumFrameTime

public static int cumFrameTime
Cumulative time for a frame, benchmark.


objectColor

protected java.awt.Color objectColor
Default color for objects that aren't marked.


leafDrawCount

public int leafDrawCount
Debugging value, for information of drawing efficiency.


internalDrawCount

public int internalDrawCount
Debugging value, for information of drawing efficiency.


pixelSize

private double pixelSize
Size of block/pixel used for rendering. Set by drawprenewframe.


uncoloredNode

private final int uncoloredNode
Index for uncolored node in getLeftMostNodes(TreeNode, TreeNode).

See Also:
Constant Field Values

coloredNode

private final int coloredNode
Index for colored node in getLeftMostNodes(TreeNode, TreeNode).

See Also:
Constant Field Values
Constructor Detail

AccordionTreeDrawer

public AccordionTreeDrawer(Tree t,
                           int w,
                           int h,
                           javax.swing.JProgressBar jpb)
Class constructor for new tree drawers. Initializes many application-specific state values for TreeJuxtaposer. Calls construction function for split lines and cells, initCells(JProgressBar).

Parameters:
t - Tree to be drawn on the drawer's canvas.
w - width of canvas, in pixels.
h - height of canvas, in pixels.
jpb - Progress bar.
Method Detail

shutdown

public void shutdown()
Clear the objects initiated in ATD. This might not be necessary.

Overrides:
shutdown in class AccordionDrawer

finalize

protected void finalize()
                 throws java.lang.Throwable
Finalize function for this class, which calls shutdown(), and might not be necessary.

Overrides:
finalize in class AccordionDrawer
Throws:
java.lang.Throwable

getMaxLineX

private StaticSplitLine getMaxLineX(java.util.ArrayList children)
Helper function for buildCells(JProgressBar). Get the maxline for the parent of the given list of children. Children are later extended to reach the same line if they are not the closest to the root.


updateMinLineX

private void updateMinLineX(java.util.ArrayList children,
                            StaticSplitLine newMinLine)
Helper function for buildCells(JProgressBar). Extends the child minlines (leftmost split line) to reach its parent.

Parameters:
children - Child list
newMinLine - new minimum X split line for each tree node in the child list

buildCells

private void buildCells(javax.swing.JProgressBar jpb)
Build cells for each TreeNode. O(n) operation that partitions the worldspace and uses already created split lines.

Parameters:
jpb - progress bar

initCells

public void initCells(javax.swing.JProgressBar jpb)
Initializes split lines, and builds cells for each tree node.

Specified by:
initCells in class AccordionDrawer
Parameters:
jpb - progress bar.

pickGeom

public CellGeom pickGeom(int x,
                         int y)
Pick the object at the given X/Y pixel location.

Specified by:
pickGeom in class AccordionDrawer
Parameters:
x - horizontal location of cursor, in screen space
y - vertical location of cursor, in screen space
Returns:
CellGeom (TreeNode) at the given position, determined by TreeNode.pickDescend(double, double, double, double).

makeBox

public InteractionBox makeBox(CellGeom cg)
Create box enclosing the subtree beneath input node/edge. The resulting box is the nearest GridLine boundaries to that point, which are cached so that redraws to erase the box can happen after the lines change position.

Parameters:
cg - TreeNode to act upon, passed in as CellGeom from AccordionDrawer (where TreeNodes are not known)
See Also:
InteractionBox

doFlash

public void doFlash()
Flash drawing wrapper, must be called for flash requests; flashDraw() is later called back within a drawing cycle. On mouseover, flash the object under the mouse and draw its label at maximum size.

Specified by:
doFlash in class AccordionDrawer
See Also:
GridCell, Tree, TreeNode

flashDraw

public void flashDraw()
Not to be called directly, only called by doFlash() via flag doingFlash that redirects in a normal drawing call. Flash drawing function, called from within the display function. order matters: 1) undraw old box 2) redraw old pixels 3) save new overdrawn pixels 4) draw flash box

Specified by:
flashDraw in class AccordionDrawer

drawPreNewFrame

protected void drawPreNewFrame()
Function that runs prior to a new scene. Makes pixel ranges (partitioned list), and initializes postscript output.

Specified by:
drawPreNewFrame in class AccordionDrawer

drawPreContFrame

protected void drawPreContFrame()
Function that runs before a frame that is being drawn for a continued scene. Currently used to set debugging values.

Specified by:
drawPreContFrame in class AccordionDrawer

drawPostScene

protected void drawPostScene()
Function that runs following a scene's completion. Currently resets GL.GL_DEPTH_TEST, and finalizes snapshot output of a tree to postscipt.

Specified by:
drawPostScene in class AccordionDrawer

drawPostFrame

protected void drawPostFrame()
Function that runs following a frame. Currently used for debugging.

Specified by:
drawPostFrame in class AccordionDrawer

getTree

public Tree getTree()
Get the tree that this drawer represents.

Returns:
value of tree.

getCanvasDrawable

public javax.media.opengl.GLAutoDrawable getCanvasDrawable()
Canvas accessor.

Returns:
the canvas for this drawer

getNodeByKey

public TreeNode getNodeByKey(int key)
Node access by node key.

Parameters:
key - key for node of interest.
Returns:
Node at the given key.

getNodeByName

public TreeNode getNodeByName(java.lang.String name)
Node access by node name.

Parameters:
name - name/label for node of interest
Returns:
Node with the given name.

getLabelBuffer

public int getLabelBuffer(int xy)
Get the size for the label buffer in the given axis by 1.

Parameters:
xy - X or Y (0/horizontal,1/vertical) axis.

setLabelBuffer

public void setLabelBuffer(int buffer)
Set the size for the label buffer in both axes.

Parameters:
buffer - new buffer amount, in pixels.

setLabelBuffer

public void setLabelBuffer(int buffer,
                           int xy)
Set the size for the label buffer in the given axis.

Parameters:
buffer - new buffer amount, in pixels.
xy - X or Y (0/horizontal,1/vertical) axis.

increaseLabelBuffer

public void increaseLabelBuffer(int xy)
Increment the size for the label buffer in the given axis by 1.

Parameters:
xy - X or Y (0/horizontal,1/vertical) axis.

decreaseLabelBuffer

public void decreaseLabelBuffer(int xy)
Decrement the size for the label buffer in the given axis by 1.

Parameters:
xy - X or Y (0/horizontal,1/vertical) axis.

getMaxFontHeight

public int getMaxFontHeight()
Get the current maximum font height.

Returns:
current value of maxFontHeight.

setMaxFontHeight

public void setMaxFontHeight(int fontheight)
Set the maximum font height to the given value.

Parameters:
fontheight - new value for maxFontHeight.

increaseMaxFontHeight

public void increaseMaxFontHeight()
Increment maximum font height by 1.


decreaseMaxFontHeight

public void decreaseMaxFontHeight()
Decrement maximum font height by 1.


getMinFontHeight

public int getMinFontHeight()
Get the current minimum font height.

Returns:
current value of minFontHeight.

setMinFontHeight

public void setMinFontHeight(int fontheight)
Set the minimum font height to the given value.

Parameters:
fontheight - new value for minFontHeight.

increaseMinFontHeight

public void increaseMinFontHeight()
Increment minimum font height by 1.


decreaseMinFontHeight

public void decreaseMinFontHeight()
Decrement minimum font height by 1.


getObjectColor

public java.awt.Color getObjectColor()
Get the objectColor.

Returns:
The value of objectColor.

setObjectColor

public void setObjectColor(java.awt.Color objectColor)
Set the objectColor.

Parameters:
objectColor - new value of objectColor.

drawGeom

public void drawGeom(CellGeom cg,
                     DrawableRange r)
Draws a geometric object (treenode here) within a containing cell A node is drawn when it's larger than some ratio of block value, as determined from the drawRange function, or when a node is marked individually, such as mouse over highlighting or single node marking

Specified by:
drawGeom in class AccordionDrawer
Parameters:
cg - The treenode to draw
r - The drawable range that the tree node is in, for directing the descent to a proper leaf in range.

getLeftMostNodes

private TreeNode[] getLeftMostNodes(TreeNode minChild,
                                    TreeNode maxChild)
Get the "left most nodes". For a range of nodes, we want to draw the path that overlaps the range and also has the closest screen-space position to the root node. This prevents gaps, as explained in the PRISAD paper.

Parameters:
minChild - minimum tree node in the block range, a leaf.
maxChild - maximum tree node in the block range, a leaf.
Returns:
1 or 2 Tree nodes that are the tallest/leftmost/closest to the root in screen space, one for colored (if any nodes are colored in the leaf range) and one that is not.

drawRange

public void drawRange(DrawableRange r)
Draw a given range. The range is smaller than a block size, and is a skeleton component, which means it is a single leaf->root path, for some leaf in the given range. Two paths may be drawn if a colored path is involved for marked ranges. TODO: reference PRISAD for range drawing a leaf range.

Specified by:
drawRange in class AccordionDrawer
Parameters:
r - Range object to be drawn.

drawRange

public void drawRange(SplitLine sl)
Stub function.

Specified by:
drawRange in class AccordionDrawer
Parameters:
sl - The SplitLine object to retrieve boundaries.

addToDrawQueue

public void addToDrawQueue(java.lang.Object r)
Add an object (RangeInTree, or TreeNode) to the drawing queue AccordionDrawer#toDrawQ

Parameters:
r - Object to add. RangeInTree objects are converted into split line ranges before insertion, TreeNodes are added directly.

getColorsForRange

public abstract java.util.ArrayList getColorsForRange(int min,
                                                      int max)
Get the list of colors for the given split line index range

Parameters:
min - start of range to get colors for.
max - end of range to get colors for.
Returns:
List of java color object that are drawn in the given range. Only the first really matters as that color is the highest priority.

getRangeByKey

public abstract RangeList getRangeByKey(int key)
Get a range list by the given key. Stored by the application, accessible by implemeted subclasses.

Parameters:
key - index into the list of ranges, aka the group number (like marked groups or difference groups)

getLeaf

public TreeNode getLeaf(int leafNum)
Get the leaf indexed by the input value.

Parameters:
leafNum - leaf index.
Returns:
Leaf at leaf position as given, note this is not the node key value.

getListOfLeaves

public java.util.TreeSet getListOfLeaves()
Get the list of leaves, as determined by the visible (drawing) set from the partition list of split axis Y.

Returns:
Returns the listOfLeaves.

resetSplitValues

public void resetSplitValues()
Stub function. For non-uniform split lines (not this type of layout)

Specified by:
resetSplitValues in class AccordionDrawer

preDraw

protected void preDraw(javax.media.opengl.GLAutoDrawable canvas)
Stub function.

Specified by:
preDraw in class AccordionDrawer
Parameters:
canvas - The canvas object for this drawer.