X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;h=ad4407333cdc5205bc23044ba927112cebe12639;hb=4a5137b64f7ec23db2a09290bfcd392984a52150;hp=5cd09a142e38ff5d26beca07fc505d0702f42f61;hpb=7461d83d08001a8cd400125fe841a013ca8057f4;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index 5cd09a1..ad44073 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -26,6 +26,7 @@ import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.api.ComplexAlignFile; import jalview.api.FeatureRenderer; +import jalview.api.FeatureSettingsModelI; import jalview.api.FeaturesDisplayedI; import jalview.bin.BuildDetails; import jalview.datamodel.AlignmentAnnotation; @@ -70,10 +71,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; @@ -104,9 +101,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 @@ -117,7 +115,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } @Override - public String print() + public String print(SequenceI[] sqs, boolean jvsuffix) { String jsonOutput = null; try @@ -170,7 +168,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()) @@ -227,7 +225,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile if (exportSettings.isExportFeatures()) { jsonAlignmentPojo - .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr)); + .setSeqFeatures(sequenceFeatureToJsonPojo(sqs, fr)); } if (exportSettings.isExportGroups() && seqGroups != null @@ -317,11 +315,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 @@ -572,8 +575,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile .get("label").toString(), alAnnot.get("description") .toString(), annotations); alignAnnot.graph = (alAnnot.get("graphType") == null) ? 0 : Integer - .valueOf(alAnnot.get("graphType") - .toString()); + .valueOf(alAnnot.get("graphType").toString()); JSONObject diplaySettings = (JSONObject) alAnnot .get("annotationSettings"); @@ -710,6 +712,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } } + @Override public String getGlobalColourScheme() { return globalColourScheme; @@ -731,6 +734,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.displayedFeatures = displayedFeatures; } + @Override public void configureForView(AlignmentViewPanel avpanel) { super.configureForView(avpanel); @@ -742,11 +746,14 @@ 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 @@ -756,6 +763,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } + @Override public boolean isShowSeqFeatures() { return showSeqFeatures; @@ -776,6 +784,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile return hiddenColumns; } + @Override public ColumnSelection getColumnSelection() { return columnSelection; @@ -786,6 +795,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.columnSelection = columnSelection; } + @Override public SequenceI[] getHiddenSequences() { if (hiddenSequences == null || hiddenSequences.isEmpty()) @@ -865,4 +875,19 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.exportJalviewSettings = exportJalviewSettings; } } + + /** + * Returns a descriptor for suitable feature display settings with + *
    + *
  • ResNums or insertions features visible
  • + *
  • insertions features coloured red
  • + *
  • ResNum features coloured by label
  • + *
  • Insertions displayed above (on top of) ResNums
  • + *
+ */ + @Override + public FeatureSettingsModelI getFeatureColourScheme() + { + return new PDBFeatureSettings(); + } }