X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;h=51603165055ac98ef299bf4059b2a9c32a65fe90;hb=1e085f14ae2f19adfac0153c437ee891f0ad07bc;hp=b8e24547f7fa18df150098f7667988db0c4133a5;hpb=90f6f3090a255a7059d0d0f26ddd848253bf9df6;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index b8e2454..5160316 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -37,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; @@ -93,7 +93,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile private ArrayList hiddenSequences; - public JSONFile() { super(); @@ -115,6 +114,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile parse(getReader()); } + @Override public String print() { @@ -159,6 +159,12 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { return true; } + + @Override + public boolean isCancelled() + { + return false; + } }; } @@ -188,15 +194,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 +219,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 +237,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 +308,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 +332,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 +456,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 +474,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); @@ -501,10 +503,12 @@ public class JSONFile extends AlignFile implements ComplexAlignFile .valueOf(annot.get("value").toString()); 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() + .equalsIgnoreCase("u0000") ? ' ' : 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 +532,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 +545,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])); @@ -599,7 +607,9 @@ public class JSONFile extends AlignFile implements ComplexAlignFile for (JalviewBioJsColorSchemeMapper cs : JalviewBioJsColorSchemeMapper .values()) { - if (cs.getBioJsName().equalsIgnoreCase(bioJsColourSchemeName)) + if (cs.getBioJsName().equalsIgnoreCase(bioJsColourSchemeName) + || cs.getJalviewName() + .equalsIgnoreCase(bioJsColourSchemeName)) { jalviewColor = cs.getJvColourScheme(); break; @@ -639,7 +649,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.displayedFeatures = displayedFeatures; } - public void configureForView(AlignmentViewPanel avpanel) { super.configureForView(avpanel); @@ -703,8 +712,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { if (hiddenSequences == null || hiddenSequences.isEmpty()) { - return new SequenceI[] - {}; + return new SequenceI[] {}; } synchronized (hiddenSequences) {