+ return;\r
+ }\r
+\r
+ if ((node.left() == null) && (node.right() == null))\r
+ {\r
+ // Drawing leaf node\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
+\r
+ int ypos = (int) (node.ycount * chunk) + offy;\r
+\r
+ if (node.element() instanceof SequenceI)\r
+ {\r
+ if (((SequenceI) ((SequenceNode) node).element()).getColor() == Color.white)\r
+ {\r
+ g.setColor(Color.black);\r
+ }\r
+ else\r
+ {\r
+ g.setColor(((SequenceI) ((SequenceNode) node).element()).getColor()\r
+ .darker());\r
+ }\r
+ }\r
+ else\r
+ {\r
+ g.setColor(Color.black);\r
+ }\r
+\r
+ // Draw horizontal line\r
+ g.drawLine(xstart, ypos, xend, ypos);\r
+\r
+ String nodeLabel = "";\r
+\r
+ if (showDistances && (node.dist > 0))\r
+ {\r
+ nodeLabel = new Format("%-.2f").form(node.dist);\r
+ }\r
+\r
+ if (showBootstrap)\r
+ {\r
+ if (showDistances)\r
+ {\r
+ nodeLabel = nodeLabel + " : ";\r
+ }\r
+\r
+ nodeLabel = nodeLabel + String.valueOf(node.getBootstrap());\r
+ }\r
+\r
+ if (!nodeLabel.equals(""))\r
+ {\r
+ g.drawString(nodeLabel, xstart+2, ypos - 2);\r
+ }\r
+\r
+ String name = (markPlaceholders && node.isPlaceholder())\r
+ ? (PLACEHOLDER + node.getName()) : node.getName();\r
+\r
+ int charWidth = fm.stringWidth(name) + 3;\r
+ int charHeight = font.getSize();\r
+\r
+ Rectangle rect = new Rectangle(xend+10, ypos-charHeight/2,\r
+ charWidth, charHeight);\r
+\r
+ nameHash.put((SequenceI) node.element(), rect);\r
+\r
+ // Colour selected leaves differently\r
+ SequenceGroup selected = av.getSelectionGroup();\r
+\r
+ if ((selected != null) &&\r
+ selected.getSequences(false).contains((SequenceI) node.element()))\r
+ {\r
+ g.setColor(Color.gray);\r
+\r
+ g.fillRect(xend + 10, ypos-charHeight/2, charWidth,\r
+ charHeight);\r
+ g.setColor(Color.white);\r
+ }\r
+\r
+ g.drawString(name, xend + 10, ypos+fm.getDescent());\r
+ g.setColor(Color.black);\r