Modified biojs exporter/importer to preserve SequenceFeatures during a write/read...
[jalview.git] / src / jalview / json / binding / v1 / BioJsAlignmentPojo.java
index 893e16b..7c2fe10 100644 (file)
@@ -1,9 +1,24 @@
 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;
 
 public class BioJsAlignmentPojo
 {
+  private String globalColorScheme = "none";
   private ArrayList<BioJsSeqPojo> seqs = new ArrayList<BioJsSeqPojo>();
 
   public BioJsAlignmentPojo()
@@ -19,4 +34,94 @@ public class BioJsAlignmentPojo
   {
     this.seqs = seqs;
   }
+  public String getGlobalColorScheme()
+  {
+    return globalColorScheme;
+  }
+  public void setGlobalColorScheme(String globalColorScheme)
+  {
+    for (JalviewBioJsColorSchemeMapper cs : JalviewBioJsColorSchemeMapper
+            .values())
+    {
+      if (cs.getJalviewName().equals(globalColorScheme))
+      {
+        this.globalColorScheme = cs.getBioJsName();
+        break;
+      }
+    }
+
+    // JALVIEW colors not in biojs
+    // Blosum62
+    // T-Coffee Scores (almost same with Blosom62
+    // RNA Interaction type - no color applied
+    // RNA Helices - missing
+
+    // BIOJS Colour not in jalview
+    // schemes.push name: "Lesk", id: "lesk"
+    // schemes.push name: "Cinema", id: "cinema"
+    // schemes.push name: "MAE", id: "mae"
+    // schemes.push name: "Clustal2", id: "clustal2"
+
+  }
+
+
+  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;
+    }
+
+  }
 }