X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreeCanvas.java;h=ead2a71a94ed067a42434217930e76d494ecdcf3;hb=9ca31f2261760b6fad088295feb701e400e7150f;hp=9ca36ccb6cc98b6ce5704a5196a03f1e988dc8d2;hpb=7b3241c464d774516c4295a5023f4aef7939298e;p=jalview.git diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index 9ca36cc..ead2a71 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,13 +36,15 @@ 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!! */ public static final String PLACEHOLDER = " * "; NJTree tree; JScrollPane scrollPane; + TreePanel tp; AlignViewport av; AlignmentPanel ap; Font font; @@ -76,15 +73,17 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, * @param scroller DOCUMENT ME! * @param label DOCUMENT ME! */ - public TreeCanvas(AlignmentPanel ap, JScrollPane scroller) + public TreeCanvas(TreePanel tp, + AlignmentPanel ap, + JScrollPane scroller) { + this.tp = tp; this.av = ap.av; this.ap = ap; font = av.getFont(); scrollPane = scroller; addMouseListener(this); addMouseMotionListener(this); - PaintRefresher.Register(this, ap.av.getSequenceSetId()); ToolTipManager.sharedInstance().registerComponent(this); } @@ -212,7 +211,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, nodeLabel = nodeLabel + " : "; } - nodeLabel = nodeLabel + String.valueOf(node.getBootstrap()); + nodeLabel = nodeLabel + String.valueOf(node.bootstrap); } if (!nodeLabel.equals("")) @@ -235,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); @@ -266,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; @@ -281,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) + { + if (showDistances) + { + nodeLabel = nodeLabel + " : "; + } + + nodeLabel = nodeLabel + String.valueOf(node.bootstrap); + } + + if (!nodeLabel.equals("")) + { + g.drawString(nodeLabel, xstart + 2, ypos - 2); } } } @@ -420,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; @@ -679,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) @@ -702,7 +723,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, } } - PaintRefresher.Refresh(this, av.getSequenceSetId()); + PaintRefresher.Refresh(tp, av.getSequenceSetId()); repaint(); } } @@ -754,7 +775,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, if (ob instanceof SequenceI) { treeSelectionChanged( (Sequence) ob); - PaintRefresher.Refresh(this, ap.av.getSequenceSetId()); + PaintRefresher.Refresh(tp, ap.av.getSequenceSetId()); repaint(); return; } @@ -781,7 +802,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, colourGroups(); } - PaintRefresher.Refresh(this, ap.av.getSequenceSetId()); + PaintRefresher.Refresh(tp, ap.av.getSequenceSetId()); repaint(); } @@ -824,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()); + AlignmentPanel[] aps = getAssociatedPanels(); for (int a = 0; a < aps.length; a++) { @@ -847,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(); @@ -901,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}; + } } }