X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FHtmlFile.java;h=d507362c8cc5188a35eb805977099ee81f3da351;hb=7ce1382b998c007a78c9b33a3dc331e966eebc4b;hp=77da038733aef32b0496680a29725974fed91cf2;hpb=227ee1c1c69c228b67d408a0a83ae51bf5811272;p=jalview.git diff --git a/src/jalview/io/HtmlFile.java b/src/jalview/io/HtmlFile.java index 77da038..d507362 100644 --- a/src/jalview/io/HtmlFile.java +++ b/src/jalview/io/HtmlFile.java @@ -1,28 +1,23 @@ package jalview.io; -import jalview.datamodel.Sequence; -import jalview.datamodel.SequenceFeature; import jalview.gui.AlignFrame; -import jalview.json.binding.v1.BioJsAlignmentPojo.JalviewBioJsColorSchemeMapper; import jalview.schemes.ColourSchemeI; import java.io.IOException; -import java.util.Iterator; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; public class HtmlFile extends AlignFile { - // public static final String FILE_EXT = "html"; - // - // public static final String FILE_DESC = "HTML"; + public static final String FILE_EXT = "html"; - private ColourSchemeI cs; + public static final String FILE_DESC = "HTML"; + + private ColourSchemeI colourScheme; + + private boolean showSeqFeatures; public HtmlFile() { @@ -39,7 +34,6 @@ public class HtmlFile extends AlignFile super(inFile, type); } - @SuppressWarnings("unchecked") @Override public void parse() throws IOException { @@ -54,97 +48,53 @@ public class HtmlFile extends AlignFile Document doc = Jsoup.parse(htmlData.toString()); Element content = doc.getElementById("seqData"); - String alignmentJsonString = content.val(); - JSONParser jsonParser = new JSONParser(); - JSONObject alignmentJsonObj = (JSONObject) jsonParser - .parse(alignmentJsonString); - JSONArray seqJsonArray = (JSONArray) alignmentJsonObj.get("seqs"); - String bioJsColourScheme = (String) alignmentJsonObj - .get("globalColorScheme"); - cs = getJalviewColorScheme(bioJsColourScheme); - - for (Iterator sequenceIter = seqJsonArray.iterator(); sequenceIter - .hasNext();) - { - JSONObject sequence = sequenceIter.next(); - String sequcenceString = sequence.get("seq").toString(); - Sequence seq = new Sequence(sequence.get("name").toString(), - sequcenceString, 0, sequcenceString.length()); - - JSONArray jsonSeqArray = (JSONArray) sequence.get("features"); - SequenceFeature[] retrievedSeqFeatures = getJalviewSequenceFeatures(jsonSeqArray); - if (retrievedSeqFeatures != null) - { - seq.setSequenceFeatures(retrievedSeqFeatures); - } - seqs.add(seq); - } + JSONFile jsonFile = new JSONFile().parse(alignmentJsonString); + seqs = jsonFile.seqs; + seqGroups = jsonFile.seqGroups; + annotations = jsonFile.annotations; + showSeqFeatures = jsonFile.isShowSeqFeatures(); + colourScheme = jsonFile.getColourScheme(); } catch (Exception e) { e.printStackTrace(); } } - public SequenceFeature[] getJalviewSequenceFeatures( - JSONArray jsonSeqFeatures) + public void applySettingsToAlignFrame(AlignFrame af) { - SequenceFeature[] seqFeatures = null; - int count = 0; - if (jsonSeqFeatures != null) - { - seqFeatures = new SequenceFeature[jsonSeqFeatures.size()]; - for (@SuppressWarnings("unchecked") - Iterator seqFeatureItr = jsonSeqFeatures.iterator(); seqFeatureItr - .hasNext();) - { - - SequenceFeature sequenceFeature = new SequenceFeature(); - JSONObject jsonFeature = seqFeatureItr.next(); - Long begin = (Long) jsonFeature.get("xStart"); - Long end = (Long) jsonFeature.get("xEnd"); - String type = (String) jsonFeature.get("text"); + af.setShowSeqFeatures(isShowSeqFeatures()); + af.changeColour(getColourScheme()); + af.setMenusForViewport(); + } - // String color = (String) jsonFeature.get("fillColor"); - sequenceFeature.setBegin(begin.intValue()); - sequenceFeature.setEnd(end.intValue()); - sequenceFeature.setType(type); - seqFeatures[count++] = sequenceFeature; - } - } - return seqFeatures; + @Override + public String print() + { + throw new UnsupportedOperationException( + "Print method of HtmlFile is not supported!"); } - public void LoadAlignmentFeatures(AlignFrame af) + public boolean isShowSeqFeatures() { + return showSeqFeatures; + } - af.setShowSeqFeatures(true); - af.changeColour(cs); - af.setMenusForViewport(); + public void setShowSeqFeatures(boolean showSeqFeatures) + { + this.showSeqFeatures = showSeqFeatures; } - private ColourSchemeI getJalviewColorScheme(String bioJsColourSchemeName) + public ColourSchemeI getColourScheme() { - ColourSchemeI jalviewColor = null; - for (JalviewBioJsColorSchemeMapper cs : JalviewBioJsColorSchemeMapper - .values()) - { - if (cs.getBioJsName().equals(bioJsColourSchemeName)) - { - jalviewColor = cs.getJvColourScheme(); - break; - } - } - return jalviewColor; + return colourScheme; } - @Override - public String print() + public void setColourScheme(ColourSchemeI colourScheme) { - throw new UnsupportedOperationException( - "Print method of HtmlFile not yet supported!"); + this.colourScheme = colourScheme; } }