X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;fp=src%2Fjalview%2Fio%2FJSONFile.java;h=20f1f943462a580058ea9ac2cee5437409a87390;hb=294cc8b0cf3d28310a95e1ffdb2a0f871304b70d;hp=bbbc122e2b8666d97819ba8f998785e2a8c7955a;hpb=263ae64817c7604150961e1c9c76554936ab994b;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index bbbc122..20f1f94 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() { @@ -119,12 +118,8 @@ public class JSONFile extends AlignFile implements ComplexAlignFile AlignmentPojo jsonAlignmentPojo = new AlignmentPojo(); if (getViewport() != null) { - globalColorScheme = ColourSchemeProperty - .getColourName(getViewport() - .getGlobalColourScheme()); - setDisplayedFeatures(getViewport().getFeaturesDisplayed()); - showSeqFeatures = getViewport().isShowSequenceFeatures(); - fr = getViewport().getFeatureRenderer(); + configureFromViewport(); + } int count = 0; @@ -154,14 +149,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 +164,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,21 +595,21 @@ public class JSONFile extends AlignFile implements ComplexAlignFile this.displayedFeatures = displayedFeatures; } - - public static String getJSONData(AlignViewportI av) + 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()) + setViewport(avpanel.getAlignViewport()); + seqGroups = avpanel.getAlignment().getGroups(); + setDisplayedFeatures(getViewport().getFeaturesDisplayed()); + fr = avpanel.cloneFeatureRenderer(); + + for (SequenceI seq : getViewport().getAlignment().getSequences()) { - jsonFile.seqs.add(seq); + seqs.add(seq); } // Add non auto calculated annotation to AlignFile - for (AlignmentAnnotation annot : av.getAlignment() + for (AlignmentAnnotation annot : getViewport().getAlignment() .getAlignmentAnnotation()) { if (annot != null && !annot.autoCalculated) @@ -623,9 +618,27 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { continue; } - jsonFile.annotations.add(annot); + annotations.add(annot); } } + } + + public void configureFromViewport() + { + if (getViewport() == null) + { + return; + } + 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; }