JAL-1780 JAL-653 Format/AppletFormat import and export pipeline regularised, uses...
[jalview.git] / src / jalview / appletgui / CutAndPasteTransfer.java
index 5b699a6..535dc62 100644 (file)
  */
 package jalview.appletgui;
 
-import java.awt.BorderLayout;
-import java.awt.Button;
-import java.awt.Dialog;
-import java.awt.Font;
-import java.awt.Frame;
-import java.awt.Label;
-import java.awt.Panel;
-import java.awt.TextArea;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-
 import jalview.analysis.AlignmentUtils;
+import jalview.api.ComplexAlignFile;
 import jalview.bin.JalviewLite;
-import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
 import jalview.io.AnnotationFile;
 import jalview.io.AppletFormatAdapter;
 import jalview.io.FileParse;
-import jalview.io.HtmlFile;
 import jalview.io.IdentifyFile;
-import jalview.io.JSONFile;
 import jalview.io.NewickFile;
 import jalview.io.TCoffeeScoreFile;
+import jalview.schemes.ColourSchemeI;
 import jalview.schemes.TCoffeeColourScheme;
 import jalview.util.MessageManager;
 
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.Dialog;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.TextArea;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
 public class CutAndPasteTransfer extends Panel implements ActionListener,
         MouseListener
 {
@@ -220,11 +220,11 @@ public class CutAndPasteTransfer extends Panel implements ActionListener,
   protected void loadAlignment(String text, boolean newWindow,
           AlignViewport viewport)
   {
-    Alignment al = null;
+    AlignmentI al = null;
 
     String format = new IdentifyFile().Identify(text,
             AppletFormatAdapter.PASTE);
-    AppletFormatAdapter afa = new AppletFormatAdapter(viewport);
+    AppletFormatAdapter afa = new AppletFormatAdapter(alignFrame.alignPanel);
     try
     {
       al = afa.readFile(text, AppletFormatAdapter.PASTE, format);
@@ -249,20 +249,32 @@ public class CutAndPasteTransfer extends Panel implements ActionListener,
       }
       if (newWindow)
       {
-        AlignFrame af = new AlignFrame(al, alignFrame.viewport.applet,
-                "Cut & Paste input - " + format, false);
-        af.statusBar
-                .setText(MessageManager
-                        .getString("label.successfully_pasted_annotation_to_alignment"));
+        AlignFrame af;
 
-        if (source instanceof HtmlFile)
+        if (source instanceof ComplexAlignFile)
         {
-          ((HtmlFile) source).applySettingsToAlignmentView(af);
+          ColumnSelection colSel = ((ComplexAlignFile) source)
+                  .getColumnSelection();
+          SequenceI[] hiddenSeqs = ((ComplexAlignFile) source)
+                  .getHiddenSequences();
+          boolean showSeqFeatures = ((ComplexAlignFile) source)
+                  .isShowSeqFeatures();
+          ColourSchemeI cs = ((ComplexAlignFile) source).getColourScheme();
+          af = new AlignFrame(al, hiddenSeqs, colSel,
+                  alignFrame.viewport.applet, "Cut & Paste input - "
+                          + format, false);
+          af.getAlignViewport().setShowSequenceFeatures(showSeqFeatures);
+          af.changeColour(cs);
         }
-        else if (source instanceof JSONFile)
+        else
         {
-          ((JSONFile) source).applySettingsToAlignmentView(af);
+          af = new AlignFrame(al, alignFrame.viewport.applet,
+                  "Cut & Paste input - " + format, false);
         }
+
+        af.statusBar
+                .setText(MessageManager
+                        .getString("label.successfully_pasted_annotation_to_alignment"));
       }
       else
       {
@@ -281,7 +293,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener,
    * @param al
    * @return
    */
-  protected boolean openSplitFrame(Alignment al, String format)
+  protected boolean openSplitFrame(AlignmentI al, String format)
   {
     final AlignmentI thisAlignment = this.alignFrame.getAlignViewport().getAlignment();
     if (thisAlignment.isNucleotide() == al.isNucleotide())