fix for bug #8333
[jalview.git] / src / jalview / io / AppletFormatAdapter.java
index d2dc8f3..76b87f8 100755 (executable)
@@ -38,7 +38,7 @@ public class AppletFormatAdapter
    */
   public static final String[] READABLE_FORMATS = new String[]
   { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH",
-      "PDB", "JnetFile" };
+      "PDB", "JnetFile"}; //, "SimpleBLAST" };
 
   /**
    * List of valid format strings for use by callers of the formatSequences
@@ -66,14 +66,14 @@ public class AppletFormatAdapter
    * corresponding to READABLE_FNAMES
    */
   public static final String[] READABLE_EXTENSIONS = new String[]
-  { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "jar" };
+  { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "jar"}; //, ".blast" };
 
   /**
    * List of readable formats by application in order corresponding to
    * READABLE_EXTENSIONS
    */
   public static final String[] READABLE_FNAMES = new String[]
-  { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview" };
+  { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview"};// , "SimpleBLAST" };
 
   public static String INVALID_CHARACTERS = "Contains invalid characters";
 
@@ -211,6 +211,10 @@ public class AppletFormatAdapter
       {
         afile = new StockholmFile(inFile, type);
       }
+      else if (format.equals("SimpleBLAST"))
+      {
+        afile = new SimpleBlastFile(inFile,type);
+      }
 
       Alignment al = new Alignment(afile.getSeqsAsArray());
 
@@ -318,6 +322,10 @@ public class AppletFormatAdapter
       {
         afile = new StockholmFile(source);
       }
+      else if (format.equals("SimpleBLAST"))
+      {
+        afile = new SimpleBlastFile(source);
+      }
 
       Alignment al = new Alignment(afile.getSeqsAsArray());
 
@@ -365,7 +373,8 @@ public class AppletFormatAdapter
 
   /**
    * Construct an output class for an alignment in a particular filetype
-   * 
+   * TODO: allow caller to detect errors and warnings encountered when generating output
+   *
    * @param format
    *                string name of alignment format
    * @param alignment
@@ -429,7 +438,12 @@ public class AppletFormatAdapter
 
       afile.setSeqs(alignment.getSequencesArray());
 
-      return afile.print();
+      String afileresp = afile.print();
+      if (afile.hasWarningMessage())
+      {
+        System.err.println("Warning raised when writing as "+format+" : "+afile.getWarningMessage());
+      }
+      return afileresp;
     } catch (Exception e)
     {
       System.err.println("Failed to write alignment as a '" + format
@@ -465,6 +479,13 @@ public class AppletFormatAdapter
           {
             System.out.println("Alignment contains " + al.getHeight()
                     + " sequences and " + al.getWidth() + " columns.");
+            try {
+              System.out.println(new AppletFormatAdapter().formatSequences("FASTA", al, true));
+            } catch (Exception e)
+            {
+              System.err.println("Couln't format the alignment for output as a FASTA file.");
+              e.printStackTrace(System.err);
+            }
           }
           else
           {