X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FJSONFile.java;h=ce70ea5f94d27ab6b91b63b4bcf40c17c2928e7e;hb=refs%2Fheads%2Fmerge%2Fdevelop_JAL-1780_JAL-653_JAL-1892;hp=bbbc122e2b8666d97819ba8f998785e2a8c7955a;hpb=93d63f3c608771bb48b5ac18f761194a1ea28554;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index bbbc122..ce70ea5 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -21,7 +21,7 @@ package jalview.io; -import jalview.api.AlignViewportI; +import jalview.api.AlignmentViewPanel; import jalview.api.ComplexAlignFile; import jalview.api.FeatureRenderer; import jalview.api.FeaturesDisplayedI; @@ -109,7 +109,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile parse(getReader()); } - @Override public String print() { @@ -117,15 +116,6 @@ public class JSONFile extends AlignFile implements ComplexAlignFile try { AlignmentPojo jsonAlignmentPojo = new AlignmentPojo(); - if (getViewport() != null) - { - globalColorScheme = ColourSchemeProperty - .getColourName(getViewport() - .getGlobalColourScheme()); - setDisplayedFeatures(getViewport().getFeaturesDisplayed()); - showSeqFeatures = getViewport().isShowSequenceFeatures(); - fr = getViewport().getFeatureRenderer(); - } int count = 0; for (SequenceI seq : seqs) @@ -154,14 +144,14 @@ public class JSONFile extends AlignFile implements ComplexAlignFile if (hiddenSections != null) { if (hiddenSections[0] != null - && getViewport().getExportSettings() + && getExportSettings() .isExportHiddenColumns()) { jsonAlignmentPojo.getAppSettings().put("hiddenCols", String.valueOf(hiddenSections[0])); } if (hiddenSections[1] != null - && getViewport().getExportSettings() + && getExportSettings() .isExportHiddenSequences()) { jsonAlignmentPojo.getAppSettings().put("hiddenSeqs", @@ -169,19 +159,19 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } } - if (getViewport().getExportSettings().isExportAnnotations()) + if (getExportSettings().isExportAnnotations()) { jsonAlignmentPojo .setAlignAnnotation(annotationToJsonPojo(annotations)); } - if (getViewport().getExportSettings().isExportFeatures()) + if (getExportSettings().isExportFeatures()) { jsonAlignmentPojo .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr)); } - if (getViewport().getExportSettings().isExportGroups() + if (getExportSettings().isExportGroups() && seqGroups != null && seqGroups.size() > 0) { @@ -600,32 +590,48 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.displayedFeatures = displayedFeatures; } - - public static String getJSONData(AlignViewportI av) + @Override + public void configureForView(AlignmentViewPanel avpanel) { - JSONFile jsonFile = new JSONFile(); - jsonFile.setViewport(av); - jsonFile.seqGroups = av.getAlignment().getGroups(); - jsonFile.setDisplayedFeatures(av.getFeaturesDisplayed()); - - for (SequenceI seq : av.getAlignment().getSequences()) - { - jsonFile.seqs.add(seq); - } - - // Add non auto calculated annotation to AlignFile - for (AlignmentAnnotation annot : av.getAlignment() - .getAlignmentAnnotation()) + super.configureForView(avpanel); + if (isExporting()) { - if (annot != null && !annot.autoCalculated) + setViewport(avpanel.getAlignViewport()); + seqGroups = avpanel.getAlignment().getGroups(); + setDisplayedFeatures(getViewport().getFeaturesDisplayed()); + fr = avpanel.cloneFeatureRenderer(); + + for (SequenceI seq : getViewport().getAlignment().getSequences()) + { + seqs.add(seq); + } + + // Add non auto calculated annotation to AlignFile + for (AlignmentAnnotation annot : getViewport().getAlignment() + .getAlignmentAnnotation()) { - if (annot.label.equals("PDB.CATempFactor")) + if (annot != null && !annot.autoCalculated) { - continue; + if (annot.label.equals("PDB.CATempFactor")) + { + continue; + } + annotations.add(annot); } - jsonFile.annotations.add(annot); } + + globalColorScheme = ColourSchemeProperty.getColourName(getViewport() + .getGlobalColourScheme()); + setDisplayedFeatures(getViewport().getFeaturesDisplayed()); + showSeqFeatures = getViewport().isShowSequenceFeatures(); } + } + + + public static String getJSONData(AlignmentViewPanel av) + { + JSONFile jsonFile = new JSONFile(); + jsonFile.configureForView(av); String jsonString = jsonFile.print(); return jsonString; }