Merge branch 'develop' into features/JAL-1759jmolUpdate
[jalview.git] / src / jalview / gui / AlignFrame.java
index 14198b9..343d5c7 100644 (file)
@@ -28,7 +28,6 @@ import jalview.analysis.CrossRef;
 import jalview.analysis.Dna;
 import jalview.analysis.ParseProperties;
 import jalview.analysis.SequenceIdMatcher;
-import jalview.api.AlignExportSettingI;
 import jalview.api.AlignViewControllerGuiI;
 import jalview.api.AlignViewControllerI;
 import jalview.api.AlignViewportI;
@@ -49,6 +48,7 @@ import jalview.commands.TrimRegionCommand;
 import jalview.datamodel.AlignedCodonFrame;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentExportData;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentOrder;
 import jalview.datamodel.AlignmentView;
@@ -306,7 +306,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     if (hiddenSeqs != null && hiddenSeqs.length > 0)
     {
       viewport.hideSequence(hiddenSeqs);
-      viewport.setHasHiddenRows(true);
     }
     alignPanel = new AlignmentPanel(this, viewport);
     addAlignmentPanel(alignPanel, true);
@@ -1141,8 +1140,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         return false;
       }
 
-      ExportData exportData = getAlignmentForExport(format);
-      FormatAdapter f = new FormatAdapter(viewport);
+      AlignmentExportData exportData = getAlignmentForExport(format, viewport);
+      if (exportData.getSettings().isCancelled())
+      {
+        return false;
+      }
+      FormatAdapter f = new FormatAdapter(alignPanel,
+              exportData.getSettings());
       String output = f.formatSequences(format,
               exportData.getAlignment(), // class cast exceptions will
               // occur in the distant future
@@ -1214,7 +1218,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   protected void outputText_actionPerformed(ActionEvent e)
   {
 
-    ExportData exportData = getAlignmentForExport(e.getActionCommand());
+    AlignmentExportData exportData = getAlignmentForExport(
+            e.getActionCommand(), viewport);
     if (exportData.getSettings().isCancelled())
     {
       return;
@@ -1223,7 +1228,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     cap.setForInput(null);
     try
     {
-      cap.setText(new FormatAdapter(viewport).formatSequences(
+      cap.setText(new FormatAdapter(alignPanel, exportData.getSettings())
+              .formatSequences(
               e.getActionCommand(),
  exportData.getAlignment(),
               exportData.getOmitHidden(), exportData.getStartEndPostions(),
@@ -1239,7 +1245,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   }
 
-  public ExportData getAlignmentForExport(String exportFomat)
+  public static AlignmentExportData getAlignmentForExport(String exportFomat,
+          AlignViewportI viewport)
   {
     AlignmentI alignmentToExport = null;
     String[] omitHidden = null;
@@ -1254,7 +1261,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     { 0, alignmentToExport.getWidth() - 1 };
 
     boolean hasHiddenSeqs = hiddenSeqs.getSize() > 0;
-    AlignExportSettingI settings = new AlignExportSettings(hasHiddenSeqs,
+    AlignExportSettings settings = new AlignExportSettings(hasHiddenSeqs,
             viewport.hasHiddenColumns(), exportFomat);
     settings.isExportAnnotations();
 
@@ -1273,8 +1280,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       alignmentStartEnd = getStartEnd(alignmentStartEnd, viewport
               .getColumnSelection().getHiddenColumns());
     }
-    return new ExportData(alignmentToExport, omitHidden, alignmentStartEnd,
+    AlignmentExportData ed = new AlignmentExportData(alignmentToExport, omitHidden, alignmentStartEnd,
             settings);
+    return ed;
   }
 
   private static int[] getStartEnd(int[] aligmentStartEnd,
@@ -4842,7 +4850,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
             // temporary flag until SplitFrame is released
             boolean asSplitFrame = Cache.getDefault(
-                    Preferences.ENABLE_SPLIT_FRAME, false);
+                    Preferences.ENABLE_SPLIT_FRAME, true);
             if (asSplitFrame)
             {
               /*
@@ -4974,7 +4982,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               "label.translation_of_params", new Object[]
               { this.getTitle() });
       af.setTitle(newTitle);
-      if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, false))
+      if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
       {
         final SequenceI[] seqs = viewport.getSelectionAsNewSequence();
         viewport.openSplitFrame(af, new Alignment(seqs),
@@ -5983,7 +5991,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         aa.visible = visible;
       }
     }
-    alignPanel.validateAnnotationDimensions(false);
+    alignPanel.validateAnnotationDimensions(true);
     alignPanel.alignmentChanged();
   }
 
@@ -6071,66 +6079,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
-  public class ExportData
-  {
-    private AlignmentI alignment;
-
-    private String[] omitHidden;
-
-    private int[] startEnd;
-
-    private AlignExportSettingI settings;
-
-    public ExportData(AlignmentI align, String[] ommit, int[] startEnd,
-            AlignExportSettingI settings)
-    {
-      this.alignment = align;
-      this.omitHidden = ommit;
-      this.startEnd = startEnd;
-      this.settings = settings;
-    }
-
-    public AlignmentI getAlignment()
-    {
-      return alignment;
-    }
-
-    public void setAlignment(AlignmentI alignment)
-    {
-      this.alignment = alignment;
-    }
-
-    public String[] getOmitHidden()
-    {
-      return omitHidden;
-    }
-
-    public void setOmitHidden(String[] omitHidden)
-    {
-      this.omitHidden = omitHidden;
-    }
-
-    public int[] getStartEndPostions()
-    {
-      return startEnd;
-    }
-
-    public void setStartEndPostions(int[] startEnd)
-    {
-      this.startEnd = startEnd;
-    }
-
-    public AlignExportSettingI getSettings()
-    {
-      return settings;
-    }
-
-    public void setSettings(AlignExportSettingI settings)
-    {
-      this.settings = settings;
-    }
-  }
-
 }
 
 class PrintThread extends Thread