X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FTreeCanvas.java;h=6ee75bd8a723586cc61e54a590ed8e0b1018b08f;hb=3f53fef393541cb63beb8766a4f3922b8c420579;hp=7040c42f26aaf554723f5e4508233b44944194f3;hpb=7f5ab7d1f58d870622968e0e6a430f33403b8e4f;p=jalview.git diff --git a/src/jalview/appletgui/TreeCanvas.java b/src/jalview/appletgui/TreeCanvas.java index 7040c42..6ee75bd 100755 --- a/src/jalview/appletgui/TreeCanvas.java +++ b/src/jalview/appletgui/TreeCanvas.java @@ -21,7 +21,7 @@ package jalview.appletgui; import jalview.analysis.Conservation; -import jalview.analysis.NJTree; +import jalview.analysis.TreeModel; import jalview.api.AlignViewportI; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceGroup; @@ -48,12 +48,13 @@ import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.Enumeration; import java.util.Hashtable; +import java.util.List; import java.util.Vector; -public class TreeCanvas extends Panel implements MouseListener, - MouseMotionListener +public class TreeCanvas extends Panel + implements MouseListener, MouseMotionListener { - NJTree tree; + TreeModel tree; ScrollPane scrollPane; @@ -115,13 +116,13 @@ public class TreeCanvas extends Panel implements MouseListener, selected.addOrRemove(sequence, true); } - public void setTree(NJTree tree) + public void setTree(TreeModel tree2) { - this.tree = tree; - tree.findHeight(tree.getTopNode()); + this.tree = tree2; + tree2.findHeight(tree2.getTopNode()); // Now have to calculate longest name based on the leaves - Vector leaves = tree.findLeaves(tree.getTopNode()); + Vector leaves = tree2.findLeaves(tree2.getTopNode()); boolean has_placeholders = false; longestName = ""; @@ -209,8 +210,9 @@ public class TreeCanvas extends Panel implements MouseListener, g.drawString(nodeLabel, xstart + 2, ypos - 2); } - String name = (markPlaceholders && node.isPlaceholder()) ? (PLACEHOLDER + node - .getName()) : node.getName(); + String name = (markPlaceholders && node.isPlaceholder()) + ? (PLACEHOLDER + node.getName()) + : node.getName(); FontMetrics fm = g.getFontMetrics(font); int charWidth = fm.stringWidth(name) + 3; int charHeight = fm.getHeight(); @@ -260,10 +262,10 @@ public class TreeCanvas extends Panel implements MouseListener, g.fillRect(xend - 2, ypos - 2, 4, 4); } - int ystart = (int) (((SequenceNode) node.left()).ycount * chunk) - + offy; - int yend = (int) (((SequenceNode) node.right()).ycount * chunk) - + offy; + int ystart = (int) (node.left() == null ? 0 + : (((SequenceNode) node.left()).ycount * chunk)) + offy; + int yend = (int) (node.right() == null ? 0 + : (((SequenceNode) node.right()).ycount * chunk)) + offy; Rectangle pos = new Rectangle(xend - 2, ypos - 2, 5, 5); nodeHash.put(node, pos); @@ -489,7 +491,8 @@ public class TreeCanvas extends Panel implements MouseListener, g.setColor(Color.gray); } - int x = (int) (threshold * (getSize().width - labelLength - 2 * offx) + offx); + int x = (int) (threshold * (getSize().width - labelLength - 2 * offx) + + offx); g.drawLine(x, 0, x, getSize().height); } @@ -593,8 +596,7 @@ public class TreeCanvas extends Panel implements MouseListener, threshold = (float) (x - offx) / (float) (getSize().width - labelLength - 2 * offx); - tree.getGroups().removeAllElements(); - tree.groupNodes(tree.getTopNode(), threshold); + List groups = tree.groupNodes(threshold); setColor(tree.getTopNode(), Color.black); av.setSelectionGroup(null); @@ -608,7 +610,7 @@ public class TreeCanvas extends Panel implements MouseListener, codingComplement.clearSequenceColours(); } - colourGroups(); + colourGroups(groups); } } @@ -618,17 +620,16 @@ public class TreeCanvas extends Panel implements MouseListener, } - void colourGroups() + void colourGroups(List groups) { - for (int i = 0; i < tree.getGroups().size(); i++) + for (int i = 0; i < groups.size(); i++) { Color col = new Color((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)); - setColor(tree.getGroups().elementAt(i), col.brighter()); + setColor(groups.get(i), col.brighter()); - Vector l = tree.findLeaves(tree.getGroups() - .elementAt(i)); + Vector l = tree.findLeaves(groups.get(i)); Vector sequences = new Vector(); for (int j = 0; j < l.size(); j++) @@ -656,9 +657,8 @@ public class TreeCanvas extends Panel implements MouseListener, } else { - cs = ColourSchemeProperty.getColourScheme(sg, - ColourSchemeProperty.getColourName(av - .getGlobalColourScheme())); + cs = ColourSchemeProperty.getColourScheme(sg, ColourSchemeProperty + .getColourName(av.getGlobalColourScheme())); } // cs is null if shading is an annotationColourGradient // if (cs != null)