X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FTreePanel.java;h=0316e0b039ca671a1e3f39019f8a5f3758fe8878;hb=HEAD;hp=7266665acd74f922cd75137c91380feb4add4dfa;hpb=02c0b8687b9932f2b4fe0a9284a47875e0269a7e;p=jalview.git diff --git a/src/jalview/appletgui/TreePanel.java b/src/jalview/appletgui/TreePanel.java index 7266665..0316e0b 100644 --- a/src/jalview/appletgui/TreePanel.java +++ b/src/jalview/appletgui/TreePanel.java @@ -20,14 +20,15 @@ */ package jalview.appletgui; +import jalview.analysis.AverageDistanceTree; import jalview.analysis.NJTree; +import jalview.analysis.TreeBuilder; +import jalview.analysis.TreeModel; import jalview.analysis.scoremodels.ScoreModels; import jalview.analysis.scoremodels.SimilarityParams; import jalview.api.analysis.ScoreModelI; -import jalview.api.analysis.ViewBasedAnalysisI; -import jalview.bin.Cache; import jalview.datamodel.Alignment; -import jalview.datamodel.ColumnSelection; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.SequenceI; import jalview.io.NewickFile; import jalview.util.MessageManager; @@ -44,8 +45,8 @@ import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; -public class TreePanel extends EmbmenuFrame implements ActionListener, - ItemListener +public class TreePanel extends EmbmenuFrame + implements ActionListener, ItemListener, AutoCloseable { SequenceI[] seq; @@ -59,42 +60,29 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, TreeCanvas treeCanvas; - NJTree tree; + TreeModel tree; AlignmentPanel ap; AlignViewport av; - public NJTree getTree() + public TreeModel getTree() { return tree; } @Override - public void finalize() throws Throwable + public void close() { ap = null; av = null; - super.finalize(); + super.close(); } /** * Creates a new TreePanel object. - * - * @param av - * DOCUMENT ME! - * @param seqVector - * DOCUMENT ME! - * @param type - * DOCUMENT ME! - * @param pwtype - * DOCUMENT ME! - * @param s - * DOCUMENT ME! - * @param e - * DOCUMENT ME! */ - public TreePanel(AlignmentPanel ap, String type, String pwtype) + public TreePanel(AlignmentPanel alignPanel, String type, String pwtype) { try { @@ -105,22 +93,12 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, ex.printStackTrace(); } - initTreePanel(ap, type, pwtype, null); + initTreePanel(alignPanel, type, pwtype, null); } /** * Creates a new TreePanel object. * - * @param av - * DOCUMENT ME! - * @param seqVector - * DOCUMENT ME! - * @param newtree - * DOCUMENT ME! - * @param type - * DOCUMENT ME! - * @param pwtype - * DOCUMENT ME! */ public TreePanel(AlignmentPanel ap, String type, String pwtype, NewickFile newtree) @@ -161,7 +139,7 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, // yields unaligned seqs) // or create a selection box around columns in alignment view // test Alignment(SeqCigar[]) - if (tree.seqData != null) + if (tree.getOriginalData() != null) { char gc = '-'; try @@ -172,9 +150,9 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, } catch (Exception ex) { } - ; - Object[] alAndColsel = tree.seqData - .getAlignmentAndColumnSelection(gc); + + Object[] alAndColsel = tree.getOriginalData() + .getAlignmentAndHiddenColumns(gc); if (alAndColsel != null && alAndColsel[0] != null) { @@ -182,12 +160,13 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, AlignFrame af = new AlignFrame(al, av.applet, "Original Data for Tree", false); - af.viewport.setHiddenColumns((ColumnSelection) alAndColsel[1]); + af.viewport.getAlignment() + .setHiddenColumns((HiddenColumns) alAndColsel[1]); } } else { - System.out.println("Original Tree Data not available"); + jalview.bin.Console.outPrintln("Original Tree Data not available"); } } @@ -207,21 +186,18 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, { if (newtree != null) { - if (odata == null) - { - tree = new NJTree(av.getAlignment().getSequencesArray(), newtree); - } - else - { - tree = new NJTree(av.getAlignment().getSequencesArray(), odata, - newtree); - } - + tree = new TreeModel(av.getAlignment().getSequencesArray(), odata, + newtree); } else { - ScoreModelI sm = configureScoreModel(pwtype); - tree = new NJTree(av, type, sm, SimilarityParams.Jalview); + ScoreModelI sm1 = ScoreModels.getInstance().getScoreModel(pwtype, + treeCanvas.ap); + ScoreModelI sm = sm1; + TreeBuilder njtree = type.equals(TreeBuilder.NEIGHBOUR_JOINING) + ? new NJTree(av, sm, SimilarityParams.Jalview) + : new AverageDistanceTree(av, sm, SimilarityParams.Jalview); + tree = new TreeModel(njtree); } tree.reCount(tree.getTopNode()); @@ -241,8 +217,8 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, 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(); @@ -360,13 +336,13 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, jMenu2.setLabel(MessageManager.getString("action.view")); fontSize.setLabel(MessageManager.getString("action.font")); fontSize.addActionListener(this); - bootstrapMenu.setLabel(MessageManager - .getString("label.show_bootstrap_values")); + bootstrapMenu.setLabel( + MessageManager.getString("label.show_bootstrap_values")); bootstrapMenu.addItemListener(this); distanceMenu.setLabel(MessageManager.getString("label.show_distances")); distanceMenu.addItemListener(this); - placeholdersMenu.setLabel(MessageManager - .getString("label.mark_unassociated_leaves")); + placeholdersMenu.setLabel( + MessageManager.getString("label.mark_unassociated_leaves")); placeholdersMenu.addItemListener(this); fitToWindow.setState(true); fitToWindow.setLabel(MessageManager.getString("label.fit_to_window")); @@ -389,29 +365,4 @@ public class TreePanel extends EmbmenuFrame implements ActionListener, inputData.addActionListener(this); } - /** - * Gets the score model for the given name. If the score model is one that - * requires to get state data from the current view, allow it to do so - * - * @param sm - * @return - */ - protected ScoreModelI configureScoreModel(String modelName) - { - ScoreModelI sm = ScoreModels.getInstance().forName(modelName); - if (sm instanceof ViewBasedAnalysisI) - { - try - { - sm = sm.getClass().newInstance(); - ((ViewBasedAnalysisI) sm).configureFromAlignmentView(treeCanvas.ap); - } catch (Exception q) - { - Cache.log.error("Couldn't create a scoremodel instance for " - + sm.getName()); - } - } - return sm; - } - }