Merge branch 'kjvdh/features/PhylogenyViewer' of
[jalview.git] / src / jalview / gui / CalculationChooser.java
index a3878d7..30a9b3d 100644 (file)
@@ -28,7 +28,7 @@ import jalview.analysis.scoremodels.SimilarityParams;
 import jalview.api.analysis.ScoreModelI;
 import jalview.api.analysis.SimilarityParamsI;
 import jalview.datamodel.SequenceGroup;
-import jalview.ext.archaeopteryx.ArchaeopteryxTreeBuilder;
+import jalview.ext.archaeopteryx.AptxInit;
 import jalview.util.MessageManager;
 
 import java.awt.BorderLayout;
@@ -63,10 +63,6 @@ import javax.swing.JRadioButton;
 import javax.swing.event.InternalFrameAdapter;
 import javax.swing.event.InternalFrameEvent;
 
-import org.forester.archaeopteryx.Archaeopteryx;
-import org.forester.archaeopteryx.MainFrame;
-import org.forester.phylogeny.Phylogeny;
-
 /**
  * A dialog where a user can choose and action Tree or PCA calculation options
  */
@@ -112,6 +108,11 @@ public class CalculationChooser extends JPanel
 
   List<String> tips = new ArrayList<>();
 
+  /*
+   * the most recently opened PCA results panel
+   */
+  private PCAPanel pcaPanel;
+
   /**
    * Constructor
    * 
@@ -476,37 +477,33 @@ public class CalculationChooser extends JPanel
     }
     else
     {
+      createTree(substitutionMatrix, params);
+
+
+
+
 
-      String treeAlgo = determineTreeAlgo();
-      TreeCalculator treeCalculator = new TreeCalculator(treeAlgo,
-              substitutionMatrix, params);
-      TreeBuilder calculatedTree = treeCalculator
-              .makeTree(af.getViewport());
-      TreeModel tree = new TreeModel(calculatedTree);
-      openTreePanel(tree, treeAlgo, substitutionMatrix);
-
-      ArchaeopteryxTreeBuilder aptxTreeBuilder = new ArchaeopteryxTreeBuilder();
-      Phylogeny aptxTree = aptxTreeBuilder.buildAptxTree(calculatedTree);
-      MainFrame aptxFrame = Archaeopteryx.createApplication(aptxTree);
-
-      int width = 400;
-      int height = 550;
-      aptxFrame.setMinimumSize(new Dimension(width - 30, height - 50)); // doesn't
-                                                                        // work
-                                                                        // as it
-                                                                        // gets
-                                                                        // overridden
-                                                                        // during
-                                                                        // addInternalFrame?
-
-      Desktop.addInternalFrame(aptxFrame, "Archaeopteryx Tree View",
-              width, height, true);
 
     }
 
     // closeFrame();
   }
 
+  protected void createTree(String substitutionMatrix,
+          SimilarityParamsI params)
+  {
+    String treeAlgo = determineTreeAlgo();
+    TreeCalculator treeCalculator = new TreeCalculator(treeAlgo,
+            substitutionMatrix, params);
+    TreeBuilder calculatedTree = treeCalculator.makeTree(af.getViewport());
+
+    AptxInit.createInstance(calculatedTree);
+
+    TreeModel tree = new TreeModel(calculatedTree);
+    openTreePanel(tree, treeAlgo, substitutionMatrix);
+  }
+
+
   protected String determineTreeAlgo() // to be modified & expanded
   {
     String treeAlgorithm = neighbourJoining.isSelected()
@@ -579,7 +576,7 @@ public class CalculationChooser extends JPanel
               JvOptionPane.WARNING_MESSAGE);
       return;
     }
-    new PCAPanel(af.alignPanel, modelName, params);
+    pcaPanel = new PCAPanel(af.alignPanel, modelName, params);
   }
 
   /**
@@ -621,7 +618,6 @@ public class CalculationChooser extends JPanel
      */
     boolean matchGap = doPCA ? false : treeMatchGaps;
 
-
     return new SimilarityParams(includeGapGap, matchGap, includeGapResidue,
             matchOnShortestLength);
   }
@@ -638,4 +634,9 @@ public class CalculationChooser extends JPanel
     {
     }
   }
+
+  public PCAPanel getPcaPanel()
+  {
+    return pcaPanel;
+  }
 }