X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;h=27ebe5a538f5936e9ff58922b1e22dc8e9726ae5;hb=70af62ad365829d2fc430db10336cf13c4d4ce1a;hp=36980f8d7616facc6103e358bc8d308b98136966;hpb=f3392c352962c6827674ada5948500725e4eed1e;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index 36980f8..27ebe5a 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -46,8 +46,9 @@ import jalview.json.binding.biojson.v1.ColourSchemeMapper; import jalview.json.binding.biojson.v1.SequenceFeaturesPojo; import jalview.json.binding.biojson.v1.SequenceGrpPojo; import jalview.json.binding.biojson.v1.SequencePojo; -import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.UserColourScheme; +import jalview.schemes.JalviewColourScheme; +import jalview.schemes.ResidueColourScheme; +import jalview.util.ColorUtils; import jalview.viewmodel.seqfeatures.FeaturesDisplayed; import java.awt.Color; @@ -71,10 +72,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile private String application = "Jalview"; - public static final String FILE_EXT = "json"; - - public static final String FILE_DESC = "JSON"; - private String globalColourScheme; private boolean showSeqFeatures; @@ -105,9 +102,10 @@ public class JSONFile extends AlignFile implements ComplexAlignFile super(source); } - public JSONFile(String inFile, String type) throws IOException + public JSONFile(String inFile, DataSourceType sourceType) + throws IOException { - super(inFile, type); + super(inFile, sourceType); } @Override @@ -118,7 +116,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } @Override - public String print() + public String print(SequenceI[] sqs, boolean jvsuffix) { String jsonOutput = null; try @@ -171,7 +169,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } int count = 0; - for (SequenceI seq : seqs) + for (SequenceI seq : sqs) { StringBuilder name = new StringBuilder(); name.append(seq.getName()).append("/").append(seq.getStart()) @@ -218,17 +216,20 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { // These color schemes require annotation, disable them if annotations // are not exported - if (globalColourScheme.equalsIgnoreCase("RNA Helices") - || globalColourScheme.equalsIgnoreCase("T-COFFEE SCORES")) + if (globalColourScheme + .equalsIgnoreCase(JalviewColourScheme.RNAHelices.toString()) + || globalColourScheme + .equalsIgnoreCase(JalviewColourScheme.TCoffee + .toString())) { - jsonAlignmentPojo.setGlobalColorScheme("None"); + jsonAlignmentPojo.setGlobalColorScheme(ResidueColourScheme.NONE); } } if (exportSettings.isExportFeatures()) { jsonAlignmentPojo - .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr)); + .setSeqFeatures(sequenceFeatureToJsonPojo(sqs, fr)); } if (exportSettings.isExportGroups() && seqGroups != null @@ -238,8 +239,8 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { SequenceGrpPojo seqGrpPojo = new SequenceGrpPojo(); seqGrpPojo.setGroupName(seqGrp.getName()); - seqGrpPojo.setColourScheme(ColourSchemeProperty - .getColourName(seqGrp.cs)); + seqGrpPojo.setColourScheme(seqGrp.getColourScheme() + .getSchemeName()); seqGrpPojo.setColourText(seqGrp.getColourText()); seqGrpPojo.setDescription(seqGrp.getDescription()); seqGrpPojo.setDisplayBoxes(seqGrp.getDisplayBoxes()); @@ -318,11 +319,16 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } public List sequenceFeatureToJsonPojo( - List seqs, FeatureRenderer fr) + SequenceI[] sqs, FeatureRenderer fr) { displayedFeatures = (fr == null) ? null : fr.getFeaturesDisplayed(); List sequenceFeaturesPojo = new ArrayList(); - for (SequenceI seq : seqs) + if (sqs == null) + { + return sequenceFeaturesPojo; + } + + for (SequenceI seq : sqs) { SequenceI dataSetSequence = seq.getDatasetSequence(); SequenceFeature[] seqFeatures = (dataSetSequence == null) ? null @@ -522,8 +528,8 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } SequenceGroup seqGrp = new SequenceGroup(grpSeqs, grpName, null, displayBoxes, displayText, colourText, startRes, endRes); - seqGrp.cs = ColourSchemeMapper.getJalviewColourScheme(colourScheme, - seqGrp); + seqGrp.setColourScheme(ColourSchemeMapper.getJalviewColourScheme( + colourScheme, seqGrp)); seqGrp.setShowNonconserved(showNonconserved); seqGrp.setDescription(description); this.seqGroups.add(seqGrp); @@ -561,7 +567,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile annotations[count] = new Annotation(displayChar, desc, ss, val); if (annot.get("colour") != null) { - Color color = UserColourScheme.getColourFromString(annot.get( + Color color = ColorUtils.parseColourString(annot.get( "colour").toString()); annotations[count].colour = color; } @@ -735,6 +741,10 @@ public class JSONFile extends AlignFile implements ComplexAlignFile @Override public void configureForView(AlignmentViewPanel avpanel) { + if (avpanel == null) + { + return; + } super.configureForView(avpanel); AlignViewportI viewport = avpanel.getAlignViewport(); AlignmentI alignment = viewport.getAlignment(); @@ -744,15 +754,17 @@ public class JSONFile extends AlignFile implements ComplexAlignFile fr = avpanel.cloneFeatureRenderer(); // Add non auto calculated annotation to AlignFile - for (AlignmentAnnotation annot : annots) + if (annots != null) { - if (annot != null && !annot.autoCalculated) + for (AlignmentAnnotation annot : annots) { - annotations.add(annot); + if (annot != null && !annot.autoCalculated) + { + annotations.add(annot); + } } } - globalColourScheme = ColourSchemeProperty.getColourName(viewport - .getGlobalColourScheme()); + globalColourScheme = viewport.getGlobalColourScheme().getSchemeName(); setDisplayedFeatures(viewport.getFeaturesDisplayed()); showSeqFeatures = viewport.isShowSequenceFeatures();