JAL-1953 moved now-generic methods outside of Aptx package
[jalview.git] / src / jalview / ext / archaeopteryx / AptxInit.java
index 49c3162..d0ec425 100644 (file)
@@ -1,28 +1,23 @@
 package jalview.ext.archaeopteryx;
 
 import jalview.analysis.TreeBuilder;
-import jalview.datamodel.SequenceI;
 import jalview.ext.forester.UtilityMethods;
-import jalview.ext.treeviewer.ExternalLoadedTreeAssociationI;
-import jalview.ext.treeviewer.ExternalTreeBuilderI;
-import jalview.ext.treeviewer.ExternalTreeFrame;
-import jalview.ext.treeviewer.ExternalTreeI;
-import jalview.ext.treeviewer.ExternalTreeNodeI;
-import jalview.ext.treeviewer.ExternalTreeViewerBindingI;
+import jalview.ext.treeviewer.LoadedTreeAssociationI;
 import jalview.ext.treeviewer.LoadedTreeSequenceAssociation;
+import jalview.ext.treeviewer.TreeBuilderI;
+import jalview.ext.treeviewer.TreeFrameI;
+import jalview.ext.treeviewer.TreeI;
+import jalview.ext.treeviewer.TreeViewerUtils;
 import jalview.gui.Desktop;
 import jalview.gui.JvOptionPane;
 import jalview.util.MessageManager;
 import jalview.viewmodel.AlignmentViewport;
 
-import java.awt.Dimension;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
 
 import org.forester.archaeopteryx.AptxUtil;
 import org.forester.archaeopteryx.Configuration;
@@ -74,20 +69,20 @@ public final class AptxInit
   private final static NHXParser.TAXONOMY_EXTRACTION TAXONOMY_EXTRACTION = APTX_CONFIG
           .getTaxonomyExtraction();
 
-  private static Map<ExternalTreeFrame, ExternalTreeViewerBindingI> activeAptx = new HashMap<>();
 
 
 
 
-  public static ExternalTreeFrame createInstanceFromCalculation(
+
+  public static TreeFrameI createInstanceFromCalculation(
           final TreeBuilder calculatedTree)
   {
-    ExternalTreeBuilderI aptxTreeBuilder = new AptxTreeBuilder(
+    TreeBuilderI aptxTreeBuilder = new AptxTreeBuilder(
             calculatedTree);
 
-    ExternalTreeI aptxTree = aptxTreeBuilder.buildTree();
+    TreeI aptxTree = aptxTreeBuilder.buildTree();
 
-    ExternalTreeFrame aptxApp = createAptxFrame(aptxTree,
+    TreeFrameI aptxApp = createAptxFrame(aptxTree,
             calculatedTree.getAvport(), null);
             
     return aptxApp;
@@ -103,13 +98,13 @@ public final class AptxInit
    * @throws IOException
    * @throws FileNotFoundException
    */
-  public static ExternalTreeFrame[] createInstancesFromFile(
+  public static TreeFrameI[] createInstancesFromFile(
           String filePath,
           AlignmentViewport viewport)
           throws FileNotFoundException, IOException
   {
     File treeFile = new File(filePath);
-    ExternalTreeFrame[] aptxFrames = null;
+    TreeFrameI[] aptxFrames = null;
     if (UtilityMethods.canForesterReadFile(treeFile))
     {
 
@@ -148,7 +143,7 @@ public final class AptxInit
     }
     Phylogeny[] trees = PhylogenyMethods.readPhylogenies(parser,
             treeFile);
-      aptxFrames = new ExternalTreeFrame[trees.length];
+      aptxFrames = new TreeFrameI[trees.length];
 
 
     for (int i = 0; i < trees.length; i++)
@@ -174,7 +169,7 @@ public final class AptxInit
     }
 
 
-  public static ExternalTreeFrame[] createInstancesFromUrl(URL treeUrl,
+  public static TreeFrameI[] createInstancesFromUrl(URL treeUrl,
           AlignmentViewport viewport)
           throws FileNotFoundException, IOException, RuntimeException
   {
@@ -189,7 +184,7 @@ public final class AptxInit
              REPLACE_NHX_UNDERSCORES, INTERNAL_NUMBERS_AS_CONFIDENCE,
             TAXONOMY_EXTRACTION, MIDPOINT_REROOT);
 
-    ExternalTreeFrame[] aptxFrames = new ExternalTreeFrame[trees.length];
+    TreeFrameI[] aptxFrames = new TreeFrameI[trees.length];
     for (int i = 0; i < trees.length; i++)
     {
       Phylogeny aptxTree = trees[i];
@@ -212,14 +207,14 @@ public final class AptxInit
    * @param viewport
    * @return
    */
-  public static ExternalTreeFrame[] createInstancesFromDb(
+  public static TreeFrameI[] createInstancesFromDb(
           PhylogeniesWebserviceClient treeDbClient, String identifier,
           AlignmentViewport viewport)
   {
 
     URL url = null;
     Phylogeny[] trees = null;
-    ExternalTreeFrame[] aptxFrames = null;
+    TreeFrameI[] aptxFrames = null;
 
     if ((identifier != null) && (identifier.trim().length() > 0))
     {
@@ -245,7 +240,7 @@ public final class AptxInit
                           { identifier }),
                   MessageManager.getString("label.invalid_url"),
                   JvOptionPane.ERROR_MESSAGE);
-          return new ExternalTreeFrame[0];
+          return new TreeFrameI[0];
         }
         identifier = id + "";
       }
@@ -323,7 +318,7 @@ public final class AptxInit
         // _main_frame.getMainPanel().setWaitCursor();
         // }
         trees = ForesterUtil.readPhylogeniesFromUrl(url, parser);
-        aptxFrames = new ExternalTreeFrame[trees.length];
+        aptxFrames = new TreeFrameI[trees.length];
       } catch (final MalformedURLException e)
       {
         exception = true;
@@ -411,7 +406,7 @@ public final class AptxInit
             // new File(url.getFile()).getName(), url.toString());
 
 
-            ExternalTreeFrame aptxApp = createAptxFrame(aptxTree,
+            TreeFrameI aptxApp = createAptxFrame(aptxTree,
                     viewport,
                     url.getFile());
             String my_name_for_file = "";
@@ -483,87 +478,51 @@ public final class AptxInit
 
 
 
-  public static ExternalTreeFrame createAptxFrame(ExternalTreeI aptxTree,
+  public static TreeFrameI createAptxFrame(TreeI aptxTree,
           AlignmentViewport jalviewAlignport, String treeTitle)
   {
     validateConfig(APTX_CONFIG);
-    ExternalTreeFrame aptxApp = aptxTree
+    TreeFrameI aptxApp = aptxTree
             .createTreeViewerFromTree(treeTitle);
-    ExternalTreeI jalviewTree = aptxApp.getTree();
-    ExternalLoadedTreeAssociationI bindAptxNodes = new LoadedTreeSequenceAssociation(
+    TreeI jalviewTree = aptxApp.getTree();
+    LoadedTreeAssociationI bindAptxNodes = new LoadedTreeSequenceAssociation(
             jalviewAlignport.getAlignment().getSequencesArray(),
             jalviewTree);
     bindAptxNodes.associateLeavesToSequences();
 
-    bindNodesToJalviewSequences(aptxApp, jalviewAlignport,
+    TreeViewerUtils.associateNodesWithJalviewSequences(aptxApp, jalviewAlignport,
             bindAptxNodes.getAlignmentWithNodes(),
             bindAptxNodes.getNodesWithAlignment());
-    bindTreeViewFrameToJalview(aptxApp);
+    TreeViewerUtils.addTreeViewFrameToJalview(aptxApp);
 
     // adaptAptxGui(aptxApp); //moved to AptxFrame
     return aptxApp;
   }
 
 
-  protected static ExternalTreeFrame createAptxFrame(
+  protected static TreeFrameI createAptxFrame(
           final Phylogeny aptxTree,
           final AlignmentViewport jalviewAlignport, String treeTitle)
   {
     validateConfig(APTX_CONFIG);
-    ExternalTreeFrame aptxApp = new AptxFrame(aptxTree, APTX_CONFIG,
+    TreeFrameI aptxApp = new AptxFrame(aptxTree, APTX_CONFIG,
             treeTitle);
-    ExternalTreeI jalviewTree = aptxApp.getTree();
-    ExternalLoadedTreeAssociationI bindAptxNodes = new LoadedTreeSequenceAssociation(
+    TreeI jalviewTree = aptxApp.getTree();
+    LoadedTreeAssociationI bindAptxNodes = new LoadedTreeSequenceAssociation(
             jalviewAlignport.getAlignment().getSequencesArray(),
             jalviewTree);
     bindAptxNodes.associateLeavesToSequences();
 
-    bindNodesToJalviewSequences(aptxApp, jalviewAlignport,
+    TreeViewerUtils.associateNodesWithJalviewSequences(aptxApp, jalviewAlignport,
             bindAptxNodes.getAlignmentWithNodes(),
             bindAptxNodes.getNodesWithAlignment());
-    bindTreeViewFrameToJalview(aptxApp);
+    TreeViewerUtils.addTreeViewFrameToJalview(aptxApp);
 
     // adaptAptxGui(aptxApp); //moved to AptxFrame
     return aptxApp;
   }
 
 
-  protected static ExternalTreeViewerBindingI bindNodesToJalviewSequences(
-          final ExternalTreeFrame aptxApp,
-          final AlignmentViewport jalviewAlignViewport,
-          final Map<SequenceI, ExternalTreeNodeI> alignMappedToNodes,
-          final Map<ExternalTreeNodeI, SequenceI> nodesMappedToAlign)
-  {
-    ExternalTreeViewerBindingI treeBinding = new JalviewBinding(aptxApp,
-            jalviewAlignViewport,
-            alignMappedToNodes, nodesMappedToAlign);
-    activeAptx.put(aptxApp, treeBinding);
-    return treeBinding;
-  }
-
-
-  protected static ExternalTreeFrame bindTreeViewFrameToJalview(
-          final ExternalTreeFrame aptxApp)
-  {
-    int width = 400;
-    int height = 550;
-    aptxApp.setMinimumSize(new Dimension(width, height));
-    // aptxApp.setFont(Desktop.instance.getFont());
-    // aptxApp.getMainPanel().setFont(Desktop.instance.getFont());
-    String frameTitle = MessageManager.getString("label.aptx_title");
-    File treeFile = aptxApp.getTreePanel().getTreeFile();
-    if (treeFile != null)
-    {
-      frameTitle += MessageManager.formatMessage("label.aptx_title_append",
-              new String[]
-              { treeFile.getAbsolutePath() });
-    }
-    aptxApp.addFrameToJalview(frameTitle, true, width, height, true,
-            true);
-    return aptxApp;
-
-  }
-
   private static boolean validateConfig(Configuration aptxConfig)
   {
     if (aptxConfig == null || aptxConfig.isCouldReadConfigFile() == false)
@@ -587,11 +546,4 @@ public final class AptxInit
   }
 
 
-
-  public static Map<ExternalTreeFrame, ExternalTreeViewerBindingI> getAllAptxFrames()
-  {
-    return activeAptx;
-  }
-
-
 }