2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
24 import jalview.api.AlignViewControllerGuiI;
25 import jalview.schemes.ColourSchemeI;
27 import java.io.IOException;
29 import org.jsoup.Jsoup;
30 import org.jsoup.nodes.Document;
31 import org.jsoup.nodes.Element;
33 public class HtmlFile extends AlignFile
35 public static final String FILE_EXT = "html";
37 public static final String FILE_DESC = "HTML";
39 private ColourSchemeI colourScheme;
41 private boolean showSeqFeatures;
48 public HtmlFile(FileParse source) throws IOException
53 public HtmlFile(String inFile, String type) throws IOException
59 public void parse() throws IOException
63 StringBuilder htmlData = new StringBuilder();
65 while ((currentLine = nextLine()) != null)
67 htmlData.append(currentLine);
70 Document doc = Jsoup.parse(htmlData.toString());
71 Element content = doc.getElementById("seqData");
72 String alignmentJsonString = content.val();
74 JSONFile jsonFile = new JSONFile().parse(alignmentJsonString);
75 seqs = jsonFile.getSeqs();
76 seqGroups = jsonFile.getSeqGroups();
77 annotations = jsonFile.getAnnotations();
78 showSeqFeatures = jsonFile.isShowSeqFeatures();
79 colourScheme = jsonFile.getColourScheme();
86 public void applySettingsToAlignFrame(AlignViewControllerGuiI af)
88 af.setShowSeqFeatures(isShowSeqFeatures());
89 af.changeColour(getColourScheme());
90 af.setMenusForViewport();
97 throw new UnsupportedOperationException(
98 "Print method of HtmlFile is not supported!");
101 public boolean isShowSeqFeatures()
103 return showSeqFeatures;
106 public void setShowSeqFeatures(boolean showSeqFeatures)
108 this.showSeqFeatures = showSeqFeatures;
111 public ColourSchemeI getColourScheme()
116 public void setColourScheme(ColourSchemeI colourScheme)
118 this.colourScheme = colourScheme;