JAL-2418 source formatting
[jalview.git] / src / jalview / appletgui / TreePanel.java
index 7266665..b5e3342 100644 (file)
  */
 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
 {
   SequenceI[] seq;
 
@@ -59,13 +60,13 @@ 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;
   }
@@ -80,21 +81,8 @@ public class TreePanel extends EmbmenuFrame implements ActionListener,
 
   /**
    * 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,7 +160,8 @@ 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
@@ -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;
-  }
-
 }