Merge branch 'hotfix/JAL-1521' into Release_2_8_2_Branch
[jalview.git] / src / jalview / io / FormatAdapter.java
index dec784b..c2a317a 100755 (executable)
@@ -1,22 +1,26 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- * 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.io;
 
+import jalview.api.AlignViewportI;
 import jalview.datamodel.*;
 
 /**
@@ -36,7 +40,7 @@ public class FormatAdapter extends AppletFormatAdapter
   }
 
   /**
-   * create sequences with each seuqence string replaced with the one given in
+   * create sequences with each sequence string replaced with the one given in
    * omitHiddenCOlumns
    * 
    * @param seqs
@@ -194,9 +198,12 @@ public class FormatAdapter extends AppletFormatAdapter
   {
     if (omitHidden != null)
     {
-      // 
-      Alignment alv = new Alignment(replaceStrings(alignment
-              .getSequencesArray(), omitHidden));
+      // TODO consider using AlignmentView to prune to visible region
+      // TODO prune sequence annotation and groups to visible region
+      // TODO: JAL-1486 - set start and end for output correctly. basically,
+      // AlignmentView.getVisibleContigs does this.
+      Alignment alv = new Alignment(replaceStrings(
+              alignment.getSequencesArray(), omitHidden));
       AlignmentAnnotation[] ala = alignment.getAlignmentAnnotation();
       if (ala != null)
       {
@@ -205,8 +212,8 @@ public class FormatAdapter extends AppletFormatAdapter
           AlignmentAnnotation na = new AlignmentAnnotation(ala[i]);
           if (selgp != null)
           {
-            colSel.makeVisibleAnnotation(selgp.getStartRes(), selgp
-                    .getEndRes(), na);
+            colSel.makeVisibleAnnotation(selgp.getStartRes(),
+                    selgp.getEndRes(), na);
           }
           else
           {
@@ -241,4 +248,16 @@ public class FormatAdapter extends AppletFormatAdapter
     }
     return AppletFormatAdapter.isValidFormat(format, forwriting);
   }
+
+  /**
+   * Create a flat file representation of a given view or selected region of a view
+   * @param format
+   * @param av
+   * @return String containing flat file
+   */
+  public String formatSequences(String format, AlignViewportI av, boolean selectedOnly)
+  {
+    return formatSequences(format, getCacheSuffixDefault(format), av, selectedOnly);
+  }
+
 }