import jalview.api.FeaturesDisplayedI;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.Annotation;
+import jalview.datamodel.HiddenSequences;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.json.binding.v1.AlignmentAnnotationPojo;
import jalview.json.binding.v1.AlignmentPojo;
+import jalview.json.binding.v1.AlignmentPojo.JalviewBioJsColorSchemeMapper;
import jalview.json.binding.v1.AnnotationPojo;
-import jalview.json.binding.v1.JalviewSettingsPojo;
-import jalview.json.binding.v1.JalviewSettingsPojo.JalviewBioJsColorSchemeMapper;
import jalview.json.binding.v1.SequenceFeaturesPojo;
import jalview.json.binding.v1.SequenceGrpPojo;
import jalview.json.binding.v1.SequencePojo;
{
private ColourSchemeI colourScheme;
- private String jalviewVersion;
+ private String version = "2.9";
- private String webStartLaunchServletUrl;
+ private String webstartUrl = "www.jalview.org/services/launchApp";
+
+ private String application = "Jalview";
public static final String FILE_EXT = "json";
if (jsonExportSettings.isExportJalviewSettings())
{
- jalviewVersion = "";
- webStartLaunchServletUrl = "www.jalview.org/services/launchApp";
-
- JalviewSettingsPojo jvSettings = new JalviewSettingsPojo();
- jvSettings.setGlobalColorScheme(globalColorScheme);
- jvSettings.setJalviewVersion(jalviewVersion);
- jvSettings.setWebStartUrl(webStartLaunchServletUrl);
- jvSettings.setShowSeqFeatures(showSeqFeatures);
- jsonAlignmentPojo.setJalviewSettings(jvSettings);
+ jsonAlignmentPojo.setGlobalColorScheme(globalColorScheme);
+ jsonAlignmentPojo.getAppSettings().put("application", application);
+ jsonAlignmentPojo.getAppSettings().put("version", version);
+ jsonAlignmentPojo.getAppSettings().put("webStartUrl", webstartUrl);
+ jsonAlignmentPojo.getAppSettings().put("showSeqFeatures",
+ String.valueOf(showSeqFeatures));
+
+ String[] hiddenSections = exportHiddenSections();
+ if (hiddenSections != null)
+ {
+ jsonAlignmentPojo.getAppSettings().put("hiddenCols",
+ String.valueOf(hiddenSections[0]));
+ jsonAlignmentPojo.getAppSettings().put("hiddenSeqs",
+ String.valueOf(hiddenSections[1]));
+ }
}
if (jsonExportSettings.isExportAnnotations())
return jsonOutput;
}
+ public String[] exportHiddenSections()
+ {
+ String[] hiddenSections = new String[2];
+ if (getViewport() == null)
+ {
+ return null;
+ }
+
+ System.out.println("--- Hidden Sections ---");
+ // hidden column business
+ if (getViewport().hasHiddenColumns())
+ {
+ System.out.print("Hidden Cols : ");
+ List<int[]> hiddenCols = getViewport().getColumnSelection()
+ .getHiddenColumns();
+ StringBuilder hiddenColsBuilder = new StringBuilder();
+ for (int[] range : hiddenCols)
+ {
+ hiddenColsBuilder.append(";").append(range[0]).append("-")
+ .append(range[1]);
+ }
+
+ hiddenColsBuilder.deleteCharAt(0);
+ hiddenSections[0] = hiddenColsBuilder.toString();
+ System.out.println(hiddenSections[0]);
+ }
+
+ // hidden rows/seqs business
+ HiddenSequences hiddenSeqsObj = getViewport().getAlignment()
+ .getHiddenSequences();
+ if (hiddenSeqsObj == null)
+ {
+ return hiddenSections;
+ }
+
+ SequenceI[] hiddenSeqs = hiddenSeqsObj.hiddenSequences;
+ System.out.print("Hidden Seqs : ");
+ StringBuilder hiddenSeqsBuilder = new StringBuilder();
+ for (SequenceI hiddenSeq : hiddenSeqs)
+ {
+ if (hiddenSeq != null)
+ {
+ hiddenSeqsBuilder.append(";").append(hiddenSeq.hashCode());
+ }
+ }
+ if (hiddenSeqsBuilder.length() > 0)
+ {
+ hiddenSeqsBuilder.deleteCharAt(0);
+ }
+ hiddenSections[1] = hiddenSeqsBuilder.toString();
+ System.out.println(hiddenSections[1]);
+ return hiddenSections;
+ }
+
public static List<SequenceFeaturesPojo> sequenceFeatureToJsonPojo(
List<SequenceI> seqs, FeatureRenderer fr)
{
JSONArray seqGrpJsonArray = (JSONArray) alignmentJsonObj
.get("seqGroups");
JSONObject jvSettingsJsonObj = (JSONObject) alignmentJsonObj
- .get("jalviewSettings");
+ .get("appSettings");
if (jvSettingsJsonObj != null)
{