JAL-2403 ScoreModelI now DistanceModelI, ScoreMatrix delegate of
[jalview.git] / src / jalview / gui / TreePanel.java
index 477c28d..13e2360 100755 (executable)
@@ -23,7 +23,7 @@ package jalview.gui;
 import jalview.analysis.AlignmentSorter;
 import jalview.analysis.NJTree;
 import jalview.analysis.scoremodels.ScoreModels;
-import jalview.api.analysis.ScoreModelI;
+import jalview.api.analysis.DistanceModelI;
 import jalview.api.analysis.ViewBasedAnalysisI;
 import jalview.bin.Cache;
 import jalview.commands.CommandI;
@@ -107,27 +107,6 @@ public class TreePanel extends GTreePanel
     // showDistances(true);
   }
 
-  /**
-   * 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)
-  {
-    super();
-    initTreePanel(ap, type, pwtype, newtree, null);
-  }
-
   public TreePanel(AlignmentPanel av, String type, String pwtype,
           NewickFile newtree, AlignmentView inputData)
   {
@@ -321,7 +300,7 @@ public class TreePanel extends GTreePanel
           seqs = av.getSelectionGroup().getSequencesInOrder(
                   av.getAlignment());
         }
-        ScoreModelI sm = ScoreModels.getInstance().forName(pwtype);
+        DistanceModelI sm = ScoreModels.getInstance().forName(pwtype);
         if (sm instanceof ViewBasedAnalysisI)
         {
           try
@@ -400,26 +379,14 @@ public class TreePanel extends GTreePanel
   {
     CutAndPasteTransfer cap = new CutAndPasteTransfer();
 
-    StringBuffer buffer = new StringBuffer();
-
-    if (type.equals(NJTree.AVERAGE_DISTANCE))
-    {
-      buffer.append("Average distance tree using ");
-    }
-    else
-    {
-      buffer.append("Neighbour joining tree using ");
-    }
-
-    ScoreModelI sm = ScoreModels.getInstance().forName(pwtype);
-    buffer.append(sm.getName());
+    String newTitle = getPanelTitle(type, pwtype);
 
     NewickFile fout = new NewickFile(tree.getTopNode());
     try
     {
       cap.setText(fout.print(tree.isHasBootstrap(), tree.isHasDistances(),
               tree.isHasRootDistance()));
-      Desktop.addInternalFrame(cap, buffer.toString(), 500, 100);
+      Desktop.addInternalFrame(cap, newTitle, 500, 100);
     } catch (OutOfMemoryError oom)
     {
       new OOMWarning("generating newick tree file", oom);
@@ -892,4 +859,43 @@ public class TreePanel extends GTreePanel
       }
     });
   }
+
+  /**
+   * Formats a localised title for the tree panel, like
+   * <p>
+   * Neighbour Joining Using BLOSUM62
+   * <p>
+   * For a tree loaded from file, just uses the file name
+   * 
+   * @param treeType
+   *          NJ or AV or FromFile
+   * @param modelOrFileName
+   * @return
+   */
+  public static String getPanelTitle(String treeType, String modelOrFileName)
+  {
+    if (NJTree.FROM_FILE.equals(treeType))
+    {
+      return modelOrFileName;
+    }
+
+    /*
+     * i18n description of Neighbour Joining or Average Distance method
+     */
+    String treecalcnm = MessageManager.getString("label.tree_calc_"
+            + treeType.toLowerCase());
+
+    /*
+     * i18n description (if any) of score model used
+     */
+    String smn = MessageManager.getStringOrReturn("label.score_model_",
+            modelOrFileName);
+
+    /*
+     * put them together as <method> Using <model>
+     */
+    final String ttl = MessageManager.formatMessage("label.treecalc_title",
+            treecalcnm, smn);
+    return ttl;
+  }
 }