X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;fp=src%2Fjalview%2Fio%2FJSONFile.java;h=d2b8412803a06628d06a73331b6a4b7a315a74f9;hb=b3206ecee2cb2787e7481c7aefc73f06fc3798c1;hp=8882f9702460d7fe6b06a8f086ca717e82e71e1c;hpb=fd1c6fd67abdd50ff0d77410d3da9be66be315ce;p=jalview.git diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index 8882f97..d2b8412 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -33,12 +33,13 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; -import jalview.api.AlignViewControllerGuiI; import jalview.api.AlignViewportI; +import jalview.api.ComplexAlignFile; import jalview.api.FeatureRenderer; import jalview.api.FeaturesDisplayedI; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; +import jalview.datamodel.ColumnSelection; import jalview.datamodel.HiddenSequences; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; @@ -54,7 +55,7 @@ import jalview.json.binding.v1.SequencePojo; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -public class JSONFile extends AlignFile +public class JSONFile extends AlignFile implements ComplexAlignFile { private ColourSchemeI colourScheme; @@ -82,8 +83,12 @@ public class JSONFile extends AlignFile private List hiddenColumns; + private ColumnSelection columnSelection; + private List hiddenSeqRefs; + private ArrayList hiddenSequences; + public JSONFile() { super(); @@ -234,11 +239,9 @@ public class JSONFile extends AlignFile return null; } - System.out.println("--- Hidden Sections ---"); // hidden column business if (getViewport().hasHiddenColumns()) { - System.out.print("Hidden Cols : "); List hiddenCols = getViewport().getColumnSelection() .getHiddenColumns(); StringBuilder hiddenColsBuilder = new StringBuilder(); @@ -250,7 +253,6 @@ public class JSONFile extends AlignFile hiddenColsBuilder.deleteCharAt(0); hiddenSections[0] = hiddenColsBuilder.toString(); - System.out.println(hiddenSections[0]); } // hidden rows/seqs business @@ -262,8 +264,6 @@ public class JSONFile extends AlignFile } SequenceI[] hiddenSeqs = hiddenSeqsObj.hiddenSequences; - System.out.print("Hidden Seqs : "); - // if(hiddenSeqs != null){ StringBuilder hiddenSeqsBuilder = new StringBuilder(); for (SequenceI hiddenSeq : hiddenSeqs) { @@ -273,12 +273,10 @@ public class JSONFile extends AlignFile } } if (hiddenSeqsBuilder.length() > 0) - { + { hiddenSeqsBuilder.deleteCharAt(0); - } + } hiddenSections[1] = hiddenSeqsBuilder.toString(); - System.out.println(hiddenSections[1]); - // } return hiddenSections; } @@ -394,6 +392,7 @@ public class JSONFile extends AlignFile parseHiddenCols(jvSettingsJsonObj); } + hiddenSequences = new ArrayList(); seqMap = new Hashtable(); for (Iterator sequenceIter = seqJsonArray.iterator(); sequenceIter .hasNext();) @@ -408,7 +407,7 @@ public class JSONFile extends AlignFile end); if (hiddenSeqRefs != null && hiddenSeqRefs.contains(seqUniqueId)) { - seq.setHidden(true); + hiddenSequences.add(seq); } seqs.add(seq); seqMap.put(seqUniqueId, seq); @@ -517,14 +516,14 @@ public class JSONFile extends AlignFile public void parseHiddenCols(JSONObject jvSettingsJson) { - hiddenColumns = new ArrayList(); String hiddenCols = (String) jvSettingsJson.get("hiddenCols"); if(hiddenCols != null && !hiddenCols.isEmpty()){ + columnSelection = new ColumnSelection(); String[] rangeStrings = hiddenCols.split(";"); for(String rangeString : rangeStrings){ String[] range = rangeString.split("-"); - hiddenColumns.add(new int[] - { Integer.valueOf(range[0]), Integer.valueOf(range[1]) }); + columnSelection.hideColumns(Integer.valueOf(range[0]), + Integer.valueOf(range[1])); } } } @@ -545,9 +544,6 @@ public class JSONFile extends AlignFile String descripiton = (String) jsonFeature.get("description"); String seqRef = (String) jsonFeature.get("sequenceRef"); Float score = Float.valueOf(jsonFeature.get("score").toString()); - // Hashtable otherDetails = (Hashtable) jsonFeature - // .get("otherDetails"); - // sequenceFeature.otherDetails = otherDetails; Sequence seq = seqMap.get(seqRef); SequenceFeature sequenceFeature = new SequenceFeature(); @@ -588,15 +584,6 @@ public class JSONFile extends AlignFile return jalviewColor; } - public void applySettingsToAlignmentView(AlignViewControllerGuiI avc) - { - avc.setShowSeqFeatures(isShowSeqFeatures()); - avc.changeColour(getColourScheme()); - avc.setMenusForViewport(); - avc.hideColumns(hiddenColumns); - avc.syncHiddenSequences(); - } - public String getGlobalColorScheme() { return globalColorScheme; @@ -637,6 +624,7 @@ public class JSONFile extends AlignFile this.jsonExportSettings = jsonExportSettings; } + public static String getJSONData(AlignViewportI av) { JSONFile jsonFile = new JSONFile(); @@ -686,6 +674,34 @@ public class JSONFile extends AlignFile return hiddenColumns; } + public ColumnSelection getColumnSelection() + { + return columnSelection; + } + + public void setColumnSelection(ColumnSelection columnSelection) + { + this.columnSelection = columnSelection; + } + + public SequenceI[] getHiddenSequences() + { + if (hiddenSequences == null || hiddenSequences.isEmpty()) + { + return new SequenceI[] + {}; + } + synchronized (hiddenSequences) + { + return hiddenSequences.toArray(new SequenceI[hiddenSequences.size()]); + } + } + + public void setHiddenSequences(ArrayList hiddenSequences) + { + this.hiddenSequences = hiddenSequences; + } + public class JSONExportSettings { private boolean exportSequence;