X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FCalculationChooser.java;h=ebb12b9c280fd26d2416713595b489a1a5677040;hb=22cc40b671171d958839a9455cba4e6cbe1bae1f;hp=f2d65e54f1e54bdcffa6d9730f303f7eaf157e22;hpb=90ae01c1c1504e0ae42817f78116f1d35b317c47;p=jalview.git diff --git a/src/jalview/gui/CalculationChooser.java b/src/jalview/gui/CalculationChooser.java index f2d65e5..ebb12b9 100644 --- a/src/jalview/gui/CalculationChooser.java +++ b/src/jalview/gui/CalculationChooser.java @@ -21,11 +21,14 @@ package jalview.gui; import jalview.analysis.TreeBuilder; +import jalview.analysis.TreeCalculator; +import jalview.analysis.TreeModel; import jalview.analysis.scoremodels.ScoreModels; import jalview.analysis.scoremodels.SimilarityParams; import jalview.api.analysis.ScoreModelI; import jalview.api.analysis.SimilarityParamsI; import jalview.datamodel.SequenceGroup; +import jalview.ext.archaeopteryx.ArchaeopteryxInit; import jalview.util.MessageManager; import java.awt.BorderLayout; @@ -105,6 +108,11 @@ public class CalculationChooser extends JPanel List tips = new ArrayList<>(); + /* + * the most recently opened PCA results panel + */ + private PCAPanel pcaPanel; + /** * Constructor * @@ -460,26 +468,38 @@ public class CalculationChooser extends JPanel protected void calculate_actionPerformed() { boolean doPCA = pca.isSelected(); - String modelName = modelNames.getSelectedItem().toString(); + String substitutionMatrix = modelNames.getSelectedItem().toString(); SimilarityParamsI params = getSimilarityParameters(doPCA); if (doPCA) { - openPcaPanel(modelName, params); + openPcaPanel(substitutionMatrix, params); } else { - calculateTree(); - openTreePanel(modelName, params); + + String treeAlgo = determineTreeAlgo(); + TreeCalculator treeCalculator = new TreeCalculator(treeAlgo, + substitutionMatrix, params); + TreeBuilder calculatedTree = treeCalculator + .makeTree(af.getViewport()); + + ArchaeopteryxInit.createInstance(calculatedTree); + + TreeModel tree = new TreeModel(calculatedTree); + openTreePanel(tree, treeAlgo, substitutionMatrix); + + + + } // closeFrame(); } - protected void calculateTree() - { - } + + protected String determineTreeAlgo() // to be modified & expanded { String treeAlgorithm = neighbourJoining.isSelected() @@ -508,8 +528,12 @@ public class CalculationChooser extends JPanel /** * Open a new Tree panel on the desktop * + * @param tree + * @param params + * @param treeAlgo */ - protected void openTreePanel(String modelName, SimilarityParamsI params) + protected void openTreePanel(TreeModel tree, String treeAlgo, + String substitutionMatrix) { /* * gui validation shouldn't allow insufficient sequences here, but leave @@ -517,9 +541,7 @@ public class CalculationChooser extends JPanel */ checkEnoughSequences(af.getViewport()); - String treeType = determineTreeAlgo(); - - af.newTreePanel(treeType, modelName, params); + af.newTreePanel(tree, treeAlgo, substitutionMatrix); } /** @@ -550,7 +572,7 @@ public class CalculationChooser extends JPanel JvOptionPane.WARNING_MESSAGE); return; } - new PCAPanel(af.alignPanel, modelName, params); + pcaPanel = new PCAPanel(af.alignPanel, modelName, params); } /** @@ -592,7 +614,6 @@ public class CalculationChooser extends JPanel */ boolean matchGap = doPCA ? false : treeMatchGaps; - return new SimilarityParams(includeGapGap, matchGap, includeGapResidue, matchOnShortestLength); } @@ -609,4 +630,9 @@ public class CalculationChooser extends JPanel { } } + + public PCAPanel getPcaPanel() + { + return pcaPanel; + } }