+ g.drawString(name, xend + 10, ypos+fm.getDescent());\r
+ g.setColor(Color.black);\r
+ }\r
+ else\r
+ {\r
+ drawNode(g, (SequenceNode) node.left(), chunk, scale, width, offx,\r
+ offy);\r
+ drawNode(g, (SequenceNode) node.right(), chunk, scale, width, offx,\r
+ offy);\r
+\r
+ float height = node.height;\r
+ float dist = node.dist;\r
+\r
+ int xstart = (int) ((height - dist) * scale) + offx;\r
+ int xend = (int) (height * scale) + offx;\r
+ int ypos = (int) (node.ycount * chunk) + offy;\r
+\r
+ g.setColor(((SequenceNode) node).color.darker());\r
+\r
+ // Draw horizontal line\r
+ g.drawLine(xstart, ypos, xend, ypos);\r
+ if (node == highlightNode)\r
+ g.fillRect(xend - 3, ypos - 3, 6, 6);\r
+ else\r
+ g.fillRect(xend - 2, ypos - 2, 4, 4);\r
+\r
+ int ystart = (int) (((SequenceNode) node.left()).ycount * chunk) +\r
+ offy;\r
+ int yend = (int) (((SequenceNode) node.right()).ycount * chunk) +\r
+ offy;\r
+\r
+ Rectangle pos = new Rectangle(xend - 2, ypos - 2, 5, 5);\r
+ nodeHash.put(node, pos);\r
+\r
+ g.drawLine((int) (height * scale) + offx, ystart,\r
+ (int) (height * scale) + offx, yend);\r
+\r
+ if (showDistances && (node.dist > 0))\r
+ {\r
+ g.drawString(new Format("%-.2f").form(node.dist).trim(), xstart+2,\r
+ ypos - 2);\r
+ }\r
+ }\r
+ }\r