JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / io / FormatAdapter.java
index ce584f2..b0414af 100755 (executable)
  */
 package jalview.io;
 
-import jalview.api.AlignExportSettingI;
+import jalview.api.AlignExportSettingsI;
 import jalview.api.AlignmentViewPanel;
 import jalview.bin.Cache;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
+import jalview.gui.Preferences;
 import jalview.util.Comparison;
 
+import java.io.File;
 import java.io.IOException;
 
 /**
@@ -55,20 +57,23 @@ public class FormatAdapter extends AppletFormatAdapter
   }
 
   public FormatAdapter(AlignmentViewPanel alignPanel,
-          AlignExportSettingI settings)
+          AlignExportSettingsI settings)
   {
     super(alignPanel, settings);
   }
 
   private void init()
   {
-    if (jalview.bin.Cache.getDefault("STRUCT_FROM_PDB", true))
+    if (jalview.bin.Cache.getDefault(Preferences.STRUCT_FROM_PDB, true))
     {
-      annotFromStructure = jalview.bin.Cache.getDefault("ADD_TEMPFACT_ANN",
+      annotFromStructure = jalview.bin.Cache.getDefault(
+              Preferences.ADD_TEMPFACT_ANN,
               true);
-      localSecondaryStruct = jalview.bin.Cache.getDefault("ADD_SS_ANN",
+      localSecondaryStruct = jalview.bin.Cache.getDefault(
+              Preferences.ADD_SS_ANN,
               true);
-      serviceSecondaryStruct = jalview.bin.Cache.getDefault("USE_RNAVIEW",
+      serviceSecondaryStruct = jalview.bin.Cache
+              .getDefault(Preferences.USE_RNAVIEW,
               true);
     }
     else
@@ -116,8 +121,8 @@ public class FormatAdapter extends AppletFormatAdapter
           startIndex = startEnd[0];
           endIndex = startEnd[1];
           // get first non-gaped residue start position
-          while (Comparison.isGap(seqs[i]
-                  .getCharAt(startIndex)) && startIndex < endIndex)
+          while (Comparison.isGap(seqs[i].getCharAt(startIndex))
+                  && startIndex < endIndex)
           {
             startIndex++;
           }
@@ -161,18 +166,19 @@ public class FormatAdapter extends AppletFormatAdapter
 
   public boolean getCacheSuffixDefault(FileFormatI format)
   {
-    return Cache.getDefault(format.getName() + "_JVSUFFIX", true);
+    return Cache.getDefault(format.getName().toUpperCase() + "_JVSUFFIX",
+            true);
   }
 
   public String formatSequences(FileFormatI format, AlignmentI alignment,
-          String[] omitHidden, int[] exportRange, ColumnSelection colSel)
+          String[] omitHidden, int[] exportRange, HiddenColumns hidden)
   {
     return formatSequences(format, alignment, omitHidden, exportRange,
-            getCacheSuffixDefault(format), colSel, null);
+            getCacheSuffixDefault(format), hidden, null);
   }
 
   /**
-   * hack function to replace seuqences with visible sequence strings before
+   * hack function to replace sequences with visible sequence strings before
    * generating a string of the alignment in the given format.
    * 
    * @param format
@@ -185,15 +191,15 @@ public class FormatAdapter extends AppletFormatAdapter
    */
   public String formatSequences(FileFormatI format, AlignmentI alignment,
           String[] omitHidden, int[] exportRange, boolean suffix,
-          ColumnSelection colSel)
+          HiddenColumns hidden)
   {
     return formatSequences(format, alignment, omitHidden, exportRange,
-            suffix, colSel, null);
+            suffix, hidden, null);
   }
 
   public String formatSequences(FileFormatI format, AlignmentI alignment,
           String[] omitHidden, int[] exportRange, boolean suffix,
-          ColumnSelection colSel, SequenceGroup selgp)
+          HiddenColumns hidden, SequenceGroup selgp)
   {
     if (omitHidden != null)
     {
@@ -211,12 +217,12 @@ public class FormatAdapter extends AppletFormatAdapter
           AlignmentAnnotation na = new AlignmentAnnotation(ala[i]);
           if (selgp != null)
           {
-            colSel.makeVisibleAnnotation(selgp.getStartRes(),
-                    selgp.getEndRes(), na);
+            na.makeVisibleAnnotation(selgp.getStartRes(), selgp.getEndRes(),
+                    hidden);
           }
           else
           {
-            colSel.makeVisibleAnnotation(na);
+            na.makeVisibleAnnotation(hidden);
           }
           alv.addAnnotation(na);
         }
@@ -234,6 +240,13 @@ public class FormatAdapter extends AppletFormatAdapter
     return al;
   }
 
+  public AlignmentI readFile(File file, DataSourceType sourceType,
+          FileFormatI fileFormat) throws IOException
+  {
+    AlignmentI al = super.readFile(file, null, sourceType, fileFormat);
+    return al;
+  }
+
   @Override
   public AlignmentI readFromFile(FileParse source, FileFormatI format)
           throws IOException
@@ -258,8 +271,8 @@ public class FormatAdapter extends AppletFormatAdapter
             selectedOnly);
   }
 
-  public AlignmentI readFromFile(AlignmentFileI source, FileFormatI format)
-          throws IOException
+  public AlignmentI readFromFile(AlignmentFileReaderI source,
+          FileFormatI format) throws IOException
   {
     FileParse fp = new FileParse(source.getInFile(),
             source.getDataSourceType());