JAL-1784 refactor parse method to directly parse FileParser input reader stream.
[jalview.git] / src / jalview / io / HtmlFile.java
index 3dd937d..e847c58 100644 (file)
 package jalview.io;
 
 import java.io.IOException;
-import java.util.List;
+import java.io.StringReader;
 
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 
-import jalview.api.AlignViewControllerGuiI;
+import jalview.api.ComplexAlignFile;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.SequenceI;
 import jalview.schemes.ColourSchemeI;
 
-public class HtmlFile extends AlignFile
+public class HtmlFile extends AlignFile implements ComplexAlignFile
 {
   public static final String FILE_EXT = "html";
 
@@ -41,7 +43,9 @@ public class HtmlFile extends AlignFile
 
   private boolean showSeqFeatures;
 
-  private List<int[]> hiddenColumns;
+  private ColumnSelection columnSelection;
+
+  private SequenceI[] hiddenSequences;
 
   public HtmlFile()
   {
@@ -72,29 +76,20 @@ public class HtmlFile extends AlignFile
 
       Document doc = Jsoup.parse(htmlData.toString());
       Element content = doc.getElementById("seqData");
-      String alignmentJsonString = content.val();
-
-      JSONFile jsonFile = new JSONFile().parse(alignmentJsonString);
+      JSONFile jsonFile = new JSONFile().parse(new StringReader(content.val()));
       this.seqs = jsonFile.getSeqs();
       this.seqGroups = jsonFile.getSeqGroups();
       this.annotations = jsonFile.getAnnotations();
       this.showSeqFeatures = jsonFile.isShowSeqFeatures();
       this.colourScheme = jsonFile.getColourScheme();
-      this.hiddenColumns = jsonFile.getHiddenColumns();
+      this.hiddenSequences = jsonFile.getHiddenSequences();
+      this.columnSelection = jsonFile.getColumnSelection();
     } catch (Exception e)
     {
       e.printStackTrace();
     }
   }
 
-  public void applySettingsToAlignmentView(AlignViewControllerGuiI avc)
-  {
-    avc.setShowSeqFeatures(isShowSeqFeatures());
-    avc.changeColour(getColourScheme());
-    avc.setMenusForViewport();
-    avc.hideColumns(hiddenColumns);
-    avc.syncHiddenSequences();
-  }
 
   @Override
   public String print()
@@ -123,4 +118,24 @@ public class HtmlFile extends AlignFile
     this.colourScheme = colourScheme;
   }
 
+  public ColumnSelection getColumnSelection()
+  {
+    return columnSelection;
+  }
+
+  public void setColumnSelection(ColumnSelection columnSelection)
+  {
+    this.columnSelection = columnSelection;
+  }
+
+  public SequenceI[] getHiddenSequences()
+  {
+    return hiddenSequences;
+  }
+
+  public void setHiddenSequences(SequenceI[] hiddenSequences)
+  {
+    this.hiddenSequences = hiddenSequences;
+  }
+
 }