X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FTreePanel.java;h=65f3d9156a22cf76fb34df2f4fa5eb0b48648c92;hb=ad20cd92225f2ee8c251d39b00b90555d382a616;hp=f3cde9d555c0504fda1a00e607c248495d2352fb;hpb=1660a4fe03b8dda74b008ae4de2d804f8044a463;p=jalview.git diff --git a/src/jalview/appletgui/TreePanel.java b/src/jalview/appletgui/TreePanel.java old mode 100755 new mode 100644 index f3cde9d..65f3d91 --- a/src/jalview/appletgui/TreePanel.java +++ b/src/jalview/appletgui/TreePanel.java @@ -1,26 +1,24 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) + * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, 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 - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. + * This file is part of Jalview. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.appletgui; import java.awt.*; import java.awt.event.*; -import java.util.Hashtable; import jalview.analysis.*; import jalview.datamodel.*; @@ -43,6 +41,8 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, NJTree tree; + AlignmentPanel ap; + AlignViewport av; public NJTree getTree() @@ -50,23 +50,30 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, return tree; } + public void finalize() throws Throwable + { + ap = null; + av = null; + super.finalize(); + } + /** * Creates a new TreePanel object. * * @param av - * DOCUMENT ME! + * DOCUMENT ME! * @param seqVector - * DOCUMENT ME! + * DOCUMENT ME! * @param type - * DOCUMENT ME! + * DOCUMENT ME! * @param pwtype - * DOCUMENT ME! + * DOCUMENT ME! * @param s - * DOCUMENT ME! + * DOCUMENT ME! * @param e - * DOCUMENT ME! + * DOCUMENT ME! */ - public TreePanel(AlignViewport av, String type, String pwtype) + public TreePanel(AlignmentPanel ap, String type, String pwtype) { try { @@ -77,24 +84,24 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, ex.printStackTrace(); } - initTreePanel(av, type, pwtype, null); + initTreePanel(ap, type, pwtype, null); } /** * Creates a new TreePanel object. * * @param av - * DOCUMENT ME! + * DOCUMENT ME! * @param seqVector - * DOCUMENT ME! + * DOCUMENT ME! * @param newtree - * DOCUMENT ME! + * DOCUMENT ME! * @param type - * DOCUMENT ME! + * DOCUMENT ME! * @param pwtype - * DOCUMENT ME! + * DOCUMENT ME! */ - public TreePanel(AlignViewport av, String type, String pwtype, + public TreePanel(AlignmentPanel ap, String type, String pwtype, NewickFile newtree) { try @@ -106,18 +113,19 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, e.printStackTrace(); } - initTreePanel(av, type, pwtype, newtree); + initTreePanel(ap, type, pwtype, newtree); } - void initTreePanel(AlignViewport av, String type, String pwtype, + void initTreePanel(AlignmentPanel ap, String type, String pwtype, NewickFile newTree) { - this.av = av; + this.ap = ap; + this.av = ap.av; this.type = type; this.pwtype = pwtype; - treeCanvas = new TreeCanvas(av, scrollPane); + treeCanvas = new TreeCanvas(ap, scrollPane); TreeLoader tl = new TreeLoader(newTree); tl.start(); embedMenuIfNeeded(treeCanvas); @@ -179,11 +187,11 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, { if (odata == null) { - tree = new NJTree(av.alignment.getSequencesArray(), newtree); + tree = new NJTree(av.getAlignment().getSequencesArray(), newtree); } else { - tree = new NJTree(av.alignment.getSequencesArray(), odata, + tree = new NJTree(av.getAlignment().getSequencesArray(), odata, newtree); } @@ -192,19 +200,21 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, { int start, end; SequenceI[] seqs; - AlignmentView seqStrings = av.getAlignmentView(av - .getSelectionGroup() != null); - if (av.getSelectionGroup() == null) + boolean selview = (av.getSelectionGroup() != null) + && (av.getSelectionGroup().getSize() > 1); + AlignmentView seqStrings = av.getAlignmentView(selview); + if (!selview) { start = 0; - end = av.alignment.getWidth(); - seqs = av.alignment.getSequencesArray(); + end = av.getAlignment().getWidth(); + seqs = av.getAlignment().getSequencesArray(); } else { start = av.getSelectionGroup().getStartRes(); end = av.getSelectionGroup().getEndRes() + 1; - seqs = av.getSelectionGroup().getSequencesInOrder(av.alignment); + seqs = av.getSelectionGroup().getSequencesInOrder( + av.getAlignment()); } tree = new NJTree(seqs, seqStrings, type, pwtype, start, end); @@ -215,14 +225,20 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, treeCanvas.setTree(tree); if (newtree != null) { - // Set default view, paying lip service to any overriding tree view parameter settings - boolean showDist = newtree.HasDistances() && av.applet.getDefaultParameter("showTreeDistances", newtree.HasDistances()); - boolean showBoots = newtree.HasBootstrap() && av.applet.getDefaultParameter("showTreeBootstraps", newtree.HasBootstrap()); + // Set default view, paying lip service to any overriding tree view + // parameter settings + boolean showDist = newtree.HasDistances() + && av.applet.getDefaultParameter("showTreeDistances", + newtree.HasDistances()); + boolean showBoots = newtree.HasBootstrap() + && av.applet.getDefaultParameter("showTreeBootstraps", + newtree.HasBootstrap()); distanceMenu.setState(showDist); bootstrapMenu.setState(showBoots); treeCanvas.setShowBootstrap(showBoots); treeCanvas.setShowDistances(showDist); - treeCanvas.setMarkPlaceholders(av.applet.getDefaultParameter("showUnlinkedTreeNodes", false)); + treeCanvas.setMarkPlaceholders(av.applet.getDefaultParameter( + "showUnlinkedTreeNodes", false)); } treeCanvas.repaint(); @@ -275,8 +291,8 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, public void newickOutput_actionPerformed() { - jalview.io.NewickFile fout = new jalview.io.NewickFile(tree - .getTopNode()); + jalview.io.NewickFile fout = new jalview.io.NewickFile( + tree.getTopNode()); String output = fout.print(false, true); CutAndPasteTransfer cap = new CutAndPasteTransfer(false, null); cap.setText(output);