Cleanup, note: rectangular selection works by holding mouse wheel and s (see line...
[jalview.git] / src / jalview / gui / PaSiMapPanel.java
index e394781..832bbad 100644 (file)
@@ -32,7 +32,7 @@ import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SequenceI;
 import jalview.gui.ImageExporter.ImageWriterI;
 import jalview.gui.JalviewColourChooser.ColourChooserListener;
-import jalview.jbgui.GPCAPanel;
+import jalview.jbgui.GPaSiMapPanel;
 import jalview.math.RotatableMatrix.Axis;
 import jalview.util.ImageMaker;
 import jalview.util.MessageManager;
@@ -59,7 +59,7 @@ import javax.swing.event.InternalFrameEvent;
 /**
  * The panel holding the Pairwise Similarity Map 3-D visualisation
  */
-public class PaSiMapPanel extends GPCAPanel
+public class PaSiMapPanel extends GPaSiMapPanel
         implements Runnable, IProgressIndicator
 {
   private static final int MIN_WIDTH = 470;
@@ -91,7 +91,7 @@ public class PaSiMapPanel extends GPCAPanel
   public PaSiMapPanel(AlignmentPanel alignPanel, String modelName,
           SimilarityParamsI params)
   {
-    super();
+    super(3);  // dim = 3
     this.av = alignPanel.av;
     this.ap = alignPanel;
     boolean nucleotide = av.getAlignment().isNucleotide();
@@ -109,7 +109,6 @@ public class PaSiMapPanel extends GPCAPanel
 
     boolean selected = av.getSelectionGroup() != null
             && av.getSelectionGroup().getSize() > 0;
-    AlignmentView seqstrings = av.getAlignmentView(selected);
     SequenceI[] seqs;
     if (!selected)
     {
@@ -123,7 +122,7 @@ public class PaSiMapPanel extends GPCAPanel
     ScoreModelI scoreModel = ScoreModels.getInstance()
             .getScoreModel(modelName, ap);
     setPasimapModel(
-            new PaSiMapModel(seqstrings, seqs, nucleotide, scoreModel, params));
+            new PaSiMapModel(av, seqs, nucleotide, scoreModel, params));
     PaintRefresher.Register(this, av.getSequenceSetId());
 
     setRotatableCanvas(new RotatableCanvas(alignPanel));
@@ -318,7 +317,7 @@ public class PaSiMapPanel extends GPCAPanel
     }
 
     Object[] alAndColsel = getPasimapModel().getInputData()
-            .getAlignmentAndHiddenColumns(gc);
+            .getAlignmentView(false).getAlignmentAndHiddenColumns(gc);
 
     if (alAndColsel != null && alAndColsel[0] != null)
     {
@@ -417,7 +416,7 @@ public class PaSiMapPanel extends GPCAPanel
     }
   }
 
-  public void makePaSiMapImage(ImageMaker.TYPE type)
+  public void makePaSiMapImage(ImageMaker.TYPE type)  throws Exception
   {
     int width = getRotatableCanvas().getWidth();
     int height = getRotatableCanvas().getHeight();
@@ -514,7 +513,7 @@ public class PaSiMapPanel extends GPCAPanel
    * (non-Javadoc)
    * 
    * @see
-   * jalview.jbgui.GPCAPanel#outputPoints_actionPerformed(java.awt.event.ActionEvent
+   * jalview.jbgui.GPaSiMapPanel#outputPoints_actionPerformed(java.awt.event.ActionEvent
    * )
    */
   @Override
@@ -540,7 +539,7 @@ public class PaSiMapPanel extends GPCAPanel
    * (non-Javadoc)
    * 
    * @see
-   * jalview.jbgui.GPCAPanel#outputProjPoints_actionPerformed(java.awt.event
+   * jalview.jbgui.GPaSiMapPanel#outputProjPoints_actionPerformed(java.awt.event
    * .ActionEvent)
    */
   @Override
@@ -565,6 +564,29 @@ public class PaSiMapPanel extends GPCAPanel
   /*
    * (non-Javadoc)
    * 
+   * @see
+   * jalview.jbgui.GPaSiMapPanel#outputAlignment_actionPerformed(java.awt.event
+   * .ActionEvent)
+   */
+  @Override
+  protected void outputAlignment_actionPerformed()
+  {
+    CutAndPasteTransfer cap = new CutAndPasteTransfer();
+    try
+    {
+      cap.setText(getPasimapModel().getAlignmentOutput());
+      Desktop.addInternalFrame(cap, MessageManager.formatMessage(
+       "label.pairwise_alignment_for_params", new String[] { this.getTitle() }), 500, 500);
+    } catch (OutOfMemoryError oom)
+    {
+      new OOMWarning("exporting pairwise alignments", oom);
+      cap.dispose();
+    }
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
    * @see jalview.gui.IProgressIndicator#setProgressBar(java.lang.String, long)
    */
   @Override
@@ -712,7 +734,7 @@ public class PaSiMapPanel extends GPCAPanel
    * 
    * @param data
    */
-  public void setInputData(AlignmentView data)
+  public void setInputData(AlignmentViewport data)
   {
     getPasimapModel().setInputData(data);
     originalSeqData.setVisible(data != null);