X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreeCanvas.java;h=3407c077213fd3f98dba3c25b5e24f4a61d98bb9;hb=b9d84d8a7aa2557c51307addf9e80139f07bb14b;hp=98299ab7a2fcbd2359fc0adf0a09a0f5b2cf1674;hpb=cce9f2efe50ca646b758e4473d1ea6e52d3a5aaf;p=jalview.git diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index 98299ab..3407c07 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -18,22 +18,17 @@ */ package jalview.gui; -import jalview.analysis.*; - -import jalview.datamodel.*; - -import jalview.schemes.*; - -import jalview.util.*; +import java.util.*; import java.awt.*; import java.awt.event.*; import java.awt.print.*; - -import java.util.*; - import javax.swing.*; +import jalview.analysis.*; +import jalview.datamodel.*; +import jalview.schemes.*; +import jalview.util.*; /** * DOCUMENT ME! @@ -41,7 +36,8 @@ import javax.swing.*; * @author $author$ * @version $Revision$ */ -public class TreeCanvas extends JPanel implements MouseListener, Runnable, +public class TreeCanvas + extends JPanel implements MouseListener, Runnable, Printable, MouseMotionListener { /** DOCUMENT ME!! */ @@ -88,7 +84,6 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, scrollPane = scroller; addMouseListener(this); addMouseMotionListener(this); - PaintRefresher.Register(tp, ap.av.getSequenceSetId()); ToolTipManager.sharedInstance().registerComponent(this); } @@ -209,14 +204,14 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, nodeLabel = new Format("%-.2f").form(node.dist); } - if (showBootstrap) + if (showBootstrap && node.bootstrap>-1) { if (showDistances) { nodeLabel = nodeLabel + " : "; } - nodeLabel = nodeLabel + String.valueOf(node.getBootstrap()); + nodeLabel = nodeLabel + String.valueOf(node.bootstrap); } if (!nodeLabel.equals("")) @@ -239,7 +234,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, SequenceGroup selected = av.getSelectionGroup(); if ( (selected != null) && - selected.getSequences(false).contains( (SequenceI) node.element())) + selected.getSequences(null).contains( (SequenceI) node.element())) { g.setColor(Color.gray); @@ -270,9 +265,13 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, // Draw horizontal line g.drawLine(xstart, ypos, xend, ypos); if (node == highlightNode) + { g.fillRect(xend - 3, ypos - 3, 6, 6); + } else + { g.fillRect(xend - 2, ypos - 2, 4, 4); + } int ystart = (int) ( ( (SequenceNode) node.left()).ycount * chunk) + offy; @@ -285,10 +284,26 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, g.drawLine( (int) (height * scale) + offx, ystart, (int) (height * scale) + offx, yend); + String nodeLabel = ""; + if (showDistances && (node.dist > 0)) { - g.drawString(new Format("%-.2f").form(node.dist).trim(), xstart + 2, - ypos - 2); + nodeLabel = new Format("%-.2f").form(node.dist); + } + + if (showBootstrap && node.bootstrap>-1) + { + if (showDistances) + { + nodeLabel = nodeLabel + " : "; + } + + nodeLabel = nodeLabel + String.valueOf(node.bootstrap); + } + + if (!nodeLabel.equals("")) + { + g.drawString(nodeLabel, xstart + 2, ypos - 2); } } } @@ -424,7 +439,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, return; } - if ( (node.left() == null) && (node.right() == null)) + if ( (node.left() == null) && (node.right() == null)) // TODO: internal node { node.color = c; @@ -683,8 +698,10 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, { Color col = JColorChooser.showDialog(this, "Select Sub-Tree Colour", highlightNode.color); - - setColor(highlightNode, col); + if (col!=null) + { + setColor(highlightNode, col); + } } else if (evt.getClickCount() > 1) @@ -828,21 +845,25 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, } else + { cs = ColourSchemeProperty.getColour(sequences, av.alignment.getWidth(), ColourSchemeProperty. getColourName( av.getGlobalColourScheme())); + } cs.setThreshold(av.getGlobalColourScheme().getThreshold(), av.getIgnoreGapsConsensus()); } SequenceGroup sg = new SequenceGroup(sequences, - "TreeGroup", cs, true, true, false, + null, cs, true, true, false, 0, av.alignment.getWidth() - 1); + sg.setName("JTreeGroup:" + sg.hashCode()); + sg.setIdColour(col); AlignmentPanel[] aps = getAssociatedPanels(); for (int a = 0; a < aps.length; a++) { @@ -851,7 +872,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, { Conservation c = new Conservation("Group", ResidueProperties.propHash, 3, - sg.getSequences(false), + sg.getSequences(null), sg.getStartRes(), sg.getEndRes()); c.calculate(); @@ -905,6 +926,10 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, return PaintRefresher.getAssociatedPanels(av.getSequenceSetId()); } else - return new AlignmentPanel[]{ap}; + { + return new AlignmentPanel[] + { + ap}; + } } }