Merge branch 'kjvdh/features/PhylogenyViewer_tabbedsupport' into merge/2_11_2/kjvdh...
[jalview.git] / src / jalview / appletgui / PCAPanel.java
index c832305..fe9d69b 100644 (file)
@@ -25,7 +25,7 @@ import jalview.analysis.scoremodels.SimilarityParams;
 import jalview.api.analysis.ScoreModelI;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentView;
-import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SeqCigar;
 import jalview.datamodel.SequenceI;
 import jalview.util.MessageManager;
@@ -48,8 +48,8 @@ import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 
-public class PCAPanel extends EmbmenuFrame implements Runnable,
-        ActionListener, ItemListener
+public class PCAPanel extends EmbmenuFrame
+        implements Runnable, ActionListener, ItemListener
 {
   RotatableCanvas rc;
 
@@ -88,7 +88,8 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
     }
     else
     {
-      seqs = viewport.getSelectionGroup().getSequencesInOrder(viewport.getAlignment());
+      seqs = viewport.getSelectionGroup()
+              .getSequencesInOrder(viewport.getAlignment());
     }
     SeqCigar sq[] = seqstrings.getSequences();
     int length = sq[0].getWidth();
@@ -103,8 +104,8 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
       }
     }
 
-    ScoreModelI scoreModel = ScoreModels.getInstance().getDefaultModel(
-            !nucleotide);
+    ScoreModelI scoreModel = ScoreModels.getInstance()
+            .getDefaultModel(!nucleotide);
     pcaModel = new PCAModel(seqstrings, seqs, nucleotide, scoreModel,
             SimilarityParams.SeqSpace);
 
@@ -116,7 +117,7 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
             MessageManager.getString("label.principal_component_analysis"),
             475, 400);
 
-    Thread worker = new Thread(this);
+    Thread worker = new Thread(this, "PCACalcThread");
     worker.start();
   }
 
@@ -133,7 +134,7 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
     {
       nuclSetting.setState(pcaModel.isNucleotide());
       protSetting.setState(!pcaModel.isNucleotide());
-      pcaModel.run();
+      pcaModel.calculate();
       // ////////////////
       xCombobox.select(0);
       yCombobox.select(1);
@@ -166,9 +167,7 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
     int dim2 = top - yCombobox.getSelectedIndex();
     int dim3 = top - zCombobox.getSelectedIndex();
     pcaModel.updateRcView(dim1, dim2, dim3);
-    rc.img = null;
-    rc.rotmat.setIdentity();
-    rc.initAxes();
+    rc.resetView();
     rc.paint(rc.getGraphics());
   }
 
@@ -216,7 +215,10 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
       if (!pcaModel.isNucleotide())
       {
         pcaModel.setNucleotide(true);
-        new Thread(this).start();
+        ScoreModelI scoreModel = ScoreModels.getInstance()
+                .getDefaultModel(false);
+        pcaModel.setScoreModel(scoreModel);
+        new Thread(this, "PCARecalcThread").start();
       }
     }
     else if (evt.getSource() == protSetting)
@@ -224,7 +226,10 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
       if (pcaModel.isNucleotide())
       {
         pcaModel.setNucleotide(false);
-        new Thread(this).start();
+        ScoreModelI scoreModel = ScoreModels.getInstance()
+                .getDefaultModel(true);
+        pcaModel.setScoreModel(scoreModel);
+        new Thread(this, "PCARecalcThread").start();
       }
     }
   }
@@ -274,16 +279,17 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
     {
     }
     ;
-    Object[] alAndColsel = pcaModel.getSeqtrings()
-            .getAlignmentAndColumnSelection(gc);
+    Object[] alAndColsel = pcaModel.getInputData()
+            .getAlignmentAndHiddenColumns(gc);
 
     if (alAndColsel != null && alAndColsel[0] != null)
     {
       Alignment al = new Alignment((SequenceI[]) alAndColsel[0]);
-      AlignFrame af = new AlignFrame(al, av.applet,
-              "Original Data for PCA", false);
+      AlignFrame af = new AlignFrame(al, av.applet, "Original Data for PCA",
+              false);
 
-      af.viewport.setHiddenColumns((ColumnSelection) alAndColsel[1]);
+      af.viewport.getAlignment()
+              .setHiddenColumns((HiddenColumns) alAndColsel[1]);
     }
   }
 
@@ -359,8 +365,8 @@ public class PCAPanel extends EmbmenuFrame implements Runnable,
     values.setLabel(MessageManager.getString("label.output_values"));
     values.addActionListener(this);
     inputData.setLabel(MessageManager.getString("label.input_data"));
-    nuclSetting.setLabel(MessageManager
-            .getString("label.nucleotide_matrix"));
+    nuclSetting
+            .setLabel(MessageManager.getString("label.nucleotide_matrix"));
     nuclSetting.addItemListener(this);
     protSetting.setLabel(MessageManager.getString("label.protein_matrix"));
     protSetting.addItemListener(this);