changeCase
[jalview.git] / src / jalview / datamodel / AlignmentAnnotation.java
index e4d64fa..c3ccb0b 100755 (executable)
@@ -27,6 +27,13 @@ package jalview.datamodel;
  */\r
 public class AlignmentAnnotation\r
 {\r
+    public SequenceI sequenceRef;\r
+\r
+    /** This annotation is the original loaded annotation\r
+     *  without any gaps. It is necessary to adjust the annotation\r
+     *  if sequences are updated */\r
+    public AlignmentAnnotation datasetAnnotation;\r
+\r
     /** DOCUMENT ME!! */\r
     public String label;\r
 \r
@@ -43,6 +50,7 @@ public class AlignmentAnnotation
     /** DOCUMENT ME!! */\r
     public float graphMax;\r
 \r
+    public GraphLine threshold;\r
 \r
     // Graphical hints and tips\r
 \r
@@ -58,16 +66,30 @@ public class AlignmentAnnotation
     /** DOCUMENT ME!! */\r
     public boolean visible = true;\r
 \r
+    public int graphGroup = -1;\r
+\r
     /** DOCUMENT ME!! */\r
     public int height = 0;\r
 \r
     public int graph = 0;\r
 \r
-    public static int NO_GRAPH = 0;\r
+    public int graphHeight = 40;\r
 \r
-    public static int BAR_GRAPH = 1;\r
+    public static final int NO_GRAPH = 0;\r
 \r
-    public static int LINE_GRAPH = 2;\r
+    public static final int BAR_GRAPH = 1;\r
+\r
+    public static final int LINE_GRAPH = 2;\r
+\r
+    public static int getGraphValueFromString(String string)\r
+    {\r
+      if(string.equalsIgnoreCase("BAR_GRAPH"))\r
+        return BAR_GRAPH;\r
+      else if(string.equalsIgnoreCase("LINE_GRAPH"))\r
+        return LINE_GRAPH;\r
+      else\r
+        return NO_GRAPH;\r
+    }\r
 \r
     /**\r
      * Creates a new AlignmentAnnotation object.\r
@@ -123,6 +145,7 @@ public class AlignmentAnnotation
 \r
         if (min == max)\r
         {\r
+            min = 999999999;\r
             for (int i = 0; i < annotations.length; i++)\r
             {\r
                 if (annotations[i] == null)\r
@@ -208,5 +231,37 @@ public class AlignmentAnnotation
         }\r
 \r
         return buffer.toString();\r
-    }\r
+      }\r
+\r
+      public void setThreshold(GraphLine line)\r
+      {\r
+        threshold = line;\r
+      }\r
+\r
+      public GraphLine getThreshold()\r
+      {\r
+          return threshold;\r
+      }\r
+\r
+      public void adjustForAlignment()\r
+      {\r
+          int a=0, aSize = sequenceRef.getLength();\r
+\r
+          int index = 0;\r
+          Annotation[] temp = new Annotation[aSize];\r
+\r
+          for (a = 0; a < aSize; a++)\r
+          {\r
+            if (!jalview.util.Comparison.isGap(sequenceRef.getCharAt(a)))\r
+            {\r
+              index = sequenceRef.findPosition(a);\r
+              if(datasetAnnotation.annotations.length>index)\r
+                temp[a] = datasetAnnotation.annotations[index];\r
+            }\r
+          }\r
+\r
+          annotations = temp;\r
+      }\r
 }\r
+\r
+\r