JAL-1780 JAL-653 moved AlignExportSettings reference on AlignViewportI to FileParse...
[jalview.git] / src / jalview / io / JSONFile.java
index bbbc122..20f1f94 100644 (file)
@@ -21,7 +21,7 @@
 
 package jalview.io;
 
-import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
 import jalview.api.ComplexAlignFile;
 import jalview.api.FeatureRenderer;
 import jalview.api.FeaturesDisplayedI;
@@ -109,7 +109,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
     parse(getReader());
 
   }
-
   @Override
   public String print()
   {
@@ -119,12 +118,8 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
       AlignmentPojo jsonAlignmentPojo = new AlignmentPojo();
       if (getViewport() != null)
       {
-        globalColorScheme = ColourSchemeProperty
-                .getColourName(getViewport()
-                .getGlobalColourScheme());
-        setDisplayedFeatures(getViewport().getFeaturesDisplayed());
-        showSeqFeatures = getViewport().isShowSequenceFeatures();
-        fr = getViewport().getFeatureRenderer();
+        configureFromViewport();
+
       }
 
       int count = 0;
@@ -154,14 +149,14 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
       if (hiddenSections != null)
       {
         if (hiddenSections[0] != null
-                && getViewport().getExportSettings()
+                && getExportSettings()
                         .isExportHiddenColumns())
         {
           jsonAlignmentPojo.getAppSettings().put("hiddenCols",
                   String.valueOf(hiddenSections[0]));
         }
         if (hiddenSections[1] != null
-                && getViewport().getExportSettings()
+                && getExportSettings()
                         .isExportHiddenSequences())
         {
           jsonAlignmentPojo.getAppSettings().put("hiddenSeqs",
@@ -169,19 +164,19 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
         }
       }
 
-      if (getViewport().getExportSettings().isExportAnnotations())
+      if (getExportSettings().isExportAnnotations())
       {
         jsonAlignmentPojo
                 .setAlignAnnotation(annotationToJsonPojo(annotations));
       }
 
-      if (getViewport().getExportSettings().isExportFeatures())
+      if (getExportSettings().isExportFeatures())
       {
         jsonAlignmentPojo
                 .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr));
       }
 
-      if (getViewport().getExportSettings().isExportGroups()
+      if (getExportSettings().isExportGroups()
               && seqGroups != null
               && seqGroups.size() > 0)
       {
@@ -600,21 +595,21 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
     this.displayedFeatures = displayedFeatures;
   }
 
-
-  public static String getJSONData(AlignViewportI av)
+  public void configureForView(AlignmentViewPanel avpanel)
   {
-    JSONFile jsonFile = new JSONFile();
-    jsonFile.setViewport(av);
-    jsonFile.seqGroups = av.getAlignment().getGroups();
-    jsonFile.setDisplayedFeatures(av.getFeaturesDisplayed());
 
-    for (SequenceI seq : av.getAlignment().getSequences())
+    setViewport(avpanel.getAlignViewport());
+    seqGroups = avpanel.getAlignment().getGroups();
+    setDisplayedFeatures(getViewport().getFeaturesDisplayed());
+    fr = avpanel.cloneFeatureRenderer();
+
+    for (SequenceI seq : getViewport().getAlignment().getSequences())
     {
-      jsonFile.seqs.add(seq);
+      seqs.add(seq);
     }
   
     // Add non auto calculated annotation to AlignFile
-    for (AlignmentAnnotation annot : av.getAlignment()
+    for (AlignmentAnnotation annot : getViewport().getAlignment()
             .getAlignmentAnnotation())
     {
       if (annot != null && !annot.autoCalculated)
@@ -623,9 +618,27 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
         {
           continue;
         }
-        jsonFile.annotations.add(annot);
+        annotations.add(annot);
       }
     }
+  }
+
+  public void configureFromViewport()
+  {
+    if (getViewport() == null)
+    {
+      return;
+    }
+    globalColorScheme = ColourSchemeProperty.getColourName(getViewport()
+            .getGlobalColourScheme());
+    setDisplayedFeatures(getViewport().getFeaturesDisplayed());
+    showSeqFeatures = getViewport().isShowSequenceFeatures();
+  }
+
+  public static String getJSONData(AlignmentViewPanel av)
+  {
+    JSONFile jsonFile = new JSONFile();
+    jsonFile.configureForView(av);
     String jsonString = jsonFile.print();
     return jsonString;
   }