X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;fp=src%2Fjalview%2Fio%2FJSONFile.java;h=8c790cc7ac520859164b0e208fa6a3f07bbc578c;hb=f06554784411ddbf871d642e66c8dcb7f147d4a8;hp=b079a3c68ece5427ea872b54763e5598499e2319;hpb=cf06ee5d732af6cc874115aece1138adafca8ad7;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index b079a3c..8c790cc 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -27,6 +27,7 @@ import jalview.api.AlignmentViewPanel; import jalview.api.ComplexAlignFile; import jalview.api.FeatureRenderer; import jalview.api.FeaturesDisplayedI; +import jalview.bin.BuildDetails; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; @@ -36,13 +37,13 @@ import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; -import jalview.json.binding.v1.AlignmentAnnotationPojo; -import jalview.json.binding.v1.AlignmentPojo; -import jalview.json.binding.v1.AlignmentPojo.JalviewBioJsColorSchemeMapper; -import jalview.json.binding.v1.AnnotationPojo; -import jalview.json.binding.v1.SequenceFeaturesPojo; -import jalview.json.binding.v1.SequenceGrpPojo; -import jalview.json.binding.v1.SequencePojo; +import jalview.json.binding.biojson.v1.AlignmentAnnotationPojo; +import jalview.json.binding.biojson.v1.AlignmentPojo; +import jalview.json.binding.biojson.v1.AnnotationPojo; +import jalview.json.binding.biojson.v1.JalviewBioJsColorSchemeMapper; +import jalview.json.binding.biojson.v1.SequenceFeaturesPojo; +import jalview.json.binding.biojson.v1.SequenceGrpPojo; +import jalview.json.binding.biojson.v1.SequencePojo; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; import jalview.viewmodel.seqfeatures.FeaturesDisplayed; @@ -64,9 +65,9 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { private ColourSchemeI colourScheme; - private String version = "2.9"; + private static String version = new BuildDetails().getVersion(); - private String webstartUrl = "www.jalview.org/services/launchApp"; + private String webstartUrl = "http://www.jalview.org/services/launchApp"; private String application = "Jalview"; @@ -92,7 +93,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile private ArrayList hiddenSequences; - public JSONFile() { super(); @@ -114,6 +114,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile parse(getReader()); } + @Override public String print() { @@ -176,7 +177,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile jsonSeqPojo.setSeq(seq.getSequenceAsString()); jsonAlignmentPojo.getSeqs().add(jsonSeqPojo); } - jsonAlignmentPojo.setGlobalColorScheme(globalColorScheme); jsonAlignmentPojo.getAppSettings().put("application", application); jsonAlignmentPojo.getAppSettings().put("version", version); @@ -188,15 +188,13 @@ public class JSONFile extends AlignFile implements ComplexAlignFile if (hiddenSections != null) { if (hiddenSections[0] != null - && exportSettings - .isExportHiddenColumns()) + && exportSettings.isExportHiddenColumns()) { jsonAlignmentPojo.getAppSettings().put("hiddenCols", String.valueOf(hiddenSections[0])); } if (hiddenSections[1] != null - && exportSettings - .isExportHiddenSequences()) + && exportSettings.isExportHiddenSequences()) { jsonAlignmentPojo.getAppSettings().put("hiddenSeqs", String.valueOf(hiddenSections[1])); @@ -215,8 +213,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr)); } - if (exportSettings.isExportGroups() - && seqGroups != null + if (exportSettings.isExportGroups() && seqGroups != null && seqGroups.size() > 0) { for (SequenceGroup seqGrp : seqGroups) @@ -234,7 +231,8 @@ public class JSONFile extends AlignFile implements ComplexAlignFile seqGrpPojo.setShowNonconserved(seqGrp.getShowNonconserved()); for (SequenceI seq : seqGrp.getSequences()) { - seqGrpPojo.getSeqsHash().add(String.valueOf(seq.hashCode())); + seqGrpPojo.getSequenceRefs() + .add(String.valueOf(seq.hashCode())); } jsonAlignmentPojo.getSeqGroups().add(seqGrpPojo); } @@ -304,8 +302,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile public List sequenceFeatureToJsonPojo( List seqs, FeatureRenderer fr) { - displayedFeatures = (fr == null) ? null : fr - .getFeaturesDisplayed(); + displayedFeatures = (fr == null) ? null : fr.getFeaturesDisplayed(); List sequenceFeaturesPojo = new ArrayList(); for (SequenceI seq : seqs) { @@ -329,8 +326,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile String.valueOf(seq.hashCode())); String featureColour = (fr == null) ? null : jalview.util.Format - .getHexString(fr - .findFeatureColour(Color.white, seq, + .getHexString(fr.findFeatureColour(Color.white, seq, seq.findIndex(sf.getBegin()))); jsonFeature.setXstart(seq.findIndex(sf.getBegin()) - 1); jsonFeature.setXend(seq.findIndex(sf.getEnd())); @@ -454,12 +450,12 @@ public class JSONFile extends AlignFile implements ComplexAlignFile int startRes = Integer .valueOf(seqGrpObj.get("startRes").toString()); int endRes = Integer.valueOf(seqGrpObj.get("endRes").toString()); - JSONArray seqsHashArray = (JSONArray) seqGrpObj.get("seqsHash"); + JSONArray sequenceRefs = (JSONArray) seqGrpObj.get("sequenceRefs"); ArrayList grpSeqs = new ArrayList(); - if (seqsHashArray.size() > 0) + if (sequenceRefs.size() > 0) { - Iterator seqHashIter = seqsHashArray.iterator(); + Iterator seqHashIter = sequenceRefs.iterator(); while (seqHashIter.hasNext()) { String seqHash = seqHashIter.next(); @@ -472,8 +468,8 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } ColourSchemeI grpColourScheme = getJalviewColorScheme(colourScheme); SequenceGroup seqGrp = new SequenceGroup(grpSeqs, grpName, - grpColourScheme, - displayBoxes, displayText, colourText, startRes, endRes); + grpColourScheme, displayBoxes, displayText, colourText, + startRes, endRes); seqGrp.setShowNonconserved(showNonconserved); seqGrp.setDescription(description); this.seqGroups.add(seqGrp); @@ -502,9 +498,10 @@ public class JSONFile extends AlignFile implements ComplexAlignFile String desc = annot.get("description") == null ? null : annot .get("description").toString(); - char ss = annot.get("secondaryStructure") == null ? ' ' - : annot.get("secondaryStructure").toString().charAt(0); - String displayChar = annot.get("displayCharacter").toString(); + char ss = annot.get("secondaryStructure") == null ? ' ' : annot + .get("secondaryStructure").toString().charAt(0); + String displayChar = annot.get("displayCharacter") == null ? "" + : annot.get("displayCharacter").toString(); annotations[count] = new Annotation(displayChar, desc, ss, val); } @@ -528,9 +525,11 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { hiddenSeqRefs = new ArrayList(); String hiddenSeqs = (String) jvSettingsJson.get("hiddenSeqs"); - if(hiddenSeqs != null && !hiddenSeqs.isEmpty()){ + if (hiddenSeqs != null && !hiddenSeqs.isEmpty()) + { String[] seqRefs = hiddenSeqs.split(";"); - for(String seqRef : seqRefs){ + for (String seqRef : seqRefs) + { hiddenSeqRefs.add(seqRef); } } @@ -539,10 +538,12 @@ public class JSONFile extends AlignFile implements ComplexAlignFile public void parseHiddenCols(JSONObject jvSettingsJson) { String hiddenCols = (String) jvSettingsJson.get("hiddenCols"); - if(hiddenCols != null && !hiddenCols.isEmpty()){ + if (hiddenCols != null && !hiddenCols.isEmpty()) + { columnSelection = new ColumnSelection(); String[] rangeStrings = hiddenCols.split(";"); - for(String rangeString : rangeStrings){ + for (String rangeString : rangeStrings) + { String[] range = rangeString.split("-"); columnSelection.hideColumns(Integer.valueOf(range[0]), Integer.valueOf(range[1])); @@ -639,7 +640,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.displayedFeatures = displayedFeatures; } - public void configureForView(AlignmentViewPanel avpanel) { super.configureForView(avpanel); @@ -703,8 +703,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { if (hiddenSequences == null || hiddenSequences.isEmpty()) { - return new SequenceI[] - {}; + return new SequenceI[] {}; } synchronized (hiddenSequences) {