JAL-1641 updated json schema to make it more generic in order to accomodate more...
[jalview.git] / src / jalview / json / binding / v1 / AlignmentPojo.java
index b3189c0..9f129f7 100644 (file)
@@ -1,6 +1,21 @@
 package jalview.json.binding.v1;
 
+import jalview.schemes.Blosum62ColourScheme;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.NucleotideColourScheme;
+import jalview.schemes.PIDColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.RNAInteractionColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.ZappoColourScheme;
+
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 public class AlignmentPojo
@@ -15,7 +30,7 @@ public class AlignmentPojo
 
   private List<SequenceFeaturesPojo> seqFeatures = new ArrayList<SequenceFeaturesPojo>();
 
-  private JalviewSettingsPojo jalviewSettings;
+  HashMap<String, String> appSettings = new HashMap<String, String>();
 
   public AlignmentPojo()
   {
@@ -31,14 +46,14 @@ public class AlignmentPojo
     this.seqs = seqs;
   }
 
-  public JalviewSettingsPojo getJalviewSettings()
+  public HashMap<String, String> getAppSettings()
   {
-    return jalviewSettings;
+    return appSettings;
   }
 
-  public void setJalviewSettings(JalviewSettingsPojo jalviewSettings)
+  public void setAppSettings(HashMap<String, String> appSettings)
   {
-    this.jalviewSettings = jalviewSettings;
+    this.appSettings = appSettings;
   }
 
   public List<AlignmentAnnotationPojo> getAlignAnnotation()
@@ -76,4 +91,78 @@ public class AlignmentPojo
   {
     return svid;
   }
+
+  public void setGlobalColorScheme(String globalColorScheme)
+  {
+    for (JalviewBioJsColorSchemeMapper cs : JalviewBioJsColorSchemeMapper
+            .values())
+    {
+      if (cs.getJalviewName().equals(globalColorScheme))
+      {
+        // this.globalColorScheme = cs.getBioJsName();
+        this.appSettings.put("globalColorScheme", cs.getBioJsName());
+        break;
+      }
+    }
+  }
+
+  public enum JalviewBioJsColorSchemeMapper
+  {
+    USER_DEFINED("User Defined", "user defined", null), NONE("None", "foo",
+            null), CLUSTAL("Clustal", "clustal", null), ZAPPO("Zappo",
+            "zappo", new ZappoColourScheme()), TAYLOR("Taylor", "taylor",
+            new TaylorColourScheme()), NUCLEOTIDE("Nucleotide",
+            "nucleotide", new NucleotideColourScheme()), PURINE_PYRIMIDINE(
+            "Purine/Pyrimidine", "purine",
+            new PurinePyrimidineColourScheme()), HELIX_PROPENCITY(
+            "Helix Propensity", "helix", new HelixColourScheme()), TURN_PROPENSITY(
+            "Turn Propensity", "turn", new TurnColourScheme()), STRAND_PROPENSITY(
+            "Strand Propensity", "strand", new StrandColourScheme()), BURIED_INDEX(
+            "Buried Index", "buried", new BuriedColourScheme()), HYDROPHOBIC(
+            "Hydrophobic", "hydro", new HydrophobicColourScheme()),
+
+    // The color types below are not yet supported by BioJs MSA viewer
+    T_COFFE_SCORES("T-Coffee Scores", "T-Coffee Scores", null), RNA_INT_TYPE(
+            "RNA Interaction type", "RNA Interaction type",
+            new RNAInteractionColourScheme()), BLOSUM62("Blosum62",
+            "Blosum62", new Blosum62ColourScheme()), RNA_HELICES(
+            "RNA Helices", "RNA Helices", null), PERCENTAGE_IDENTITY(
+            "% Identity", "pid", new PIDColourScheme());
+
+    private String jalviewName;
+
+    private String bioJsName;
+
+    private ColourSchemeI jvColourScheme;
+
+    private JalviewBioJsColorSchemeMapper(String jalviewName,
+            String bioJsName, ColourSchemeI jvColourScheme)
+    {
+      this.jalviewName = jalviewName;
+      this.bioJsName = bioJsName;
+      this.setJvColourScheme(jvColourScheme);
+    }
+
+    public String getJalviewName()
+    {
+      return jalviewName;
+    }
+
+    public String getBioJsName()
+    {
+      return bioJsName;
+    }
+
+    public ColourSchemeI getJvColourScheme()
+    {
+      return jvColourScheme;
+    }
+
+    public void setJvColourScheme(ColourSchemeI jvColourScheme)
+    {
+      this.jvColourScheme = jvColourScheme;
+    }
+
+  }
+
 }