X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fappletgui%2FTreeCanvas.java;h=f965ff4686b41d79f7209b7e2b36e76c61736447;hb=3d998cf52e272c70873c44c7672bc1270cafbf10;hp=1355916b0d8d7066f3355607992d8dd1d12015a2;hpb=fe68da05540c32386ec63bd3beeadf8b9d624a16;p=jalview.git diff --git a/src/jalview/appletgui/TreeCanvas.java b/src/jalview/appletgui/TreeCanvas.java index 1355916..f965ff4 100755 --- a/src/jalview/appletgui/TreeCanvas.java +++ b/src/jalview/appletgui/TreeCanvas.java @@ -87,7 +87,7 @@ public class TreeCanvas extends Panel Hashtable nodeHash = new Hashtable(); - SequenceNode highlightNode; + BinaryNode highlightNode; AlignmentPanel ap; @@ -123,15 +123,15 @@ public class TreeCanvas extends Panel tree2.findHeight(tree2.getTopNode()); // Now have to calculate longest name based on the leaves - Vector leaves = tree2.findLeaves(tree2.getTopNode()); + Vector leaves = tree2.findLeaves(tree2.getTopNode()); boolean has_placeholders = false; longestName = ""; for (int i = 0; i < leaves.size(); i++) { - SequenceNode lf = leaves.elementAt(i); + BinaryNode lf = leaves.elementAt(i); - if (lf.isPlaceholder()) + if (lf instanceof SequenceNode && ((SequenceNode) lf).isPlaceholder()) { has_placeholders = true; } @@ -147,7 +147,7 @@ public class TreeCanvas extends Panel setMarkPlaceholders(has_placeholders); } - public void drawNode(Graphics g, SequenceNode node, float chunk, + public void drawNode(Graphics g, BinaryNode node, float chunk, double scale, int width, int offx, int offy) { if (node == null) @@ -211,9 +211,10 @@ public class TreeCanvas extends Panel g.drawString(nodeLabel, xstart + 2, ypos - 2); } - String name = (markPlaceholders && node.isPlaceholder()) - ? (PLACEHOLDER + node.getName()) - : node.getName(); + String name = (markPlaceholders && node instanceof SequenceNode + && ((SequenceNode) node).isPlaceholder()) + ? (PLACEHOLDER + node.getName()) + : node.getName(); FontMetrics fm = g.getFontMetrics(font); int charWidth = fm.stringWidth(name) + 3; int charHeight = fm.getHeight(); @@ -238,9 +239,9 @@ public class TreeCanvas extends Panel } else { - drawNode(g, (SequenceNode) node.left(), chunk, scale, width, offx, + drawNode(g, (BinaryNode) node.left(), chunk, scale, width, offx, offy); - drawNode(g, (SequenceNode) node.right(), chunk, scale, width, offx, + drawNode(g, (BinaryNode) node.right(), chunk, scale, width, offx, offy); double height = node.height; @@ -385,8 +386,8 @@ public class TreeCanvas extends Panel } else { - pickNode(pickBox, (BinaryNode) node.left(), chunk, scale, width, - offx, offy); + pickNode(pickBox, (BinaryNode) node.left(), chunk, scale, width, offx, + offy); pickNode(pickBox, (BinaryNode) node.right(), chunk, scale, width, offx, offy); } @@ -528,7 +529,7 @@ public class TreeCanvas extends Panel } else { - Vector leaves = tree.findLeaves(highlightNode); + Vector leaves = tree.findLeaves(highlightNode); for (int i = 0; i < leaves.size(); i++) { @@ -555,9 +556,9 @@ public class TreeCanvas extends Panel Object ob = findElement(evt.getX(), evt.getY()); - if (ob instanceof SequenceNode) + if (ob instanceof BinaryNode) { - highlightNode = (SequenceNode) ob; + highlightNode = (BinaryNode) ob; repaint(); } else @@ -597,7 +598,7 @@ public class TreeCanvas extends Panel threshold = (float) (x - offx) / (float) (getSize().width - labelLength - 2 * offx); - List groups = tree.groupNodes(threshold); + List groups = tree.groupNodes(threshold); setColor(tree.getTopNode(), Color.black); av.setSelectionGroup(null); @@ -621,7 +622,7 @@ public class TreeCanvas extends Panel } - void colourGroups(List groups) + void colourGroups(List groups) { for (int i = 0; i < groups.size(); i++) { @@ -630,7 +631,7 @@ public class TreeCanvas extends Panel (int) (Math.random() * 255), (int) (Math.random() * 255)); setColor(groups.get(i), col.brighter()); - Vector l = tree.findLeaves(groups.get(i)); + Vector l = tree.findLeaves(groups.get(i)); Vector sequences = new Vector<>(); for (int j = 0; j < l.size(); j++)