No need for minorSpacing
[jalview.git] / src / jalview / schemes / AnnotationColourGradient.java
index 5825612..789667e 100755 (executable)
@@ -34,7 +34,31 @@ public class AnnotationColourGradient extends ResidueColourScheme
     GraphLine annotationThreshold;\r
 \r
     float r1, g1, b1, rr, gg, bb, dr, dg, db;\r
-    float range;\r
+    float range = 0;\r
+\r
+    ColourSchemeI colourScheme;\r
+\r
+    /**\r
+     * Creates a new AnnotationColourGradient object.\r
+     */\r
+    public AnnotationColourGradient(AlignmentAnnotation annotation,\r
+                                    ColourSchemeI originalColour,\r
+                                    int aboveThreshold)\r
+    {\r
+      if(originalColour instanceof AnnotationColourGradient)\r
+      {\r
+        colourScheme = ((AnnotationColourGradient)originalColour).colourScheme;\r
+      }\r
+      else\r
+        colourScheme = originalColour;\r
+\r
+      this.annotation = annotation;\r
+\r
+      aboveAnnotationThreshold = aboveThreshold;\r
+\r
+      if(aboveThreshold!=NO_THRESHOLD && annotation.threshold!=null)\r
+        annotationThreshold = annotation.threshold;\r
+    }\r
 \r
     /**\r
      * Creates a new AnnotationColourGradient object.\r
@@ -46,8 +70,8 @@ public class AnnotationColourGradient extends ResidueColourScheme
 \r
       aboveAnnotationThreshold = aboveThreshold;\r
 \r
-      if(aboveThreshold!=NO_THRESHOLD && annotation.graphLines!=null)\r
-        annotationThreshold = annotation.getGraphLine(0);\r
+      if(aboveThreshold!=NO_THRESHOLD && annotation.threshold!=null)\r
+        annotationThreshold = annotation.threshold;\r
 \r
       r1 = minColour.getRed();\r
       g1 = minColour.getGreen();\r
@@ -80,7 +104,6 @@ public class AnnotationColourGradient extends ResidueColourScheme
      */\r
     public Color findColour(String n)\r
     {\r
-      System.out.println("AnnotationColourGradient findColour(string)");\r
         return Color.red;\r
     }\r
 \r
@@ -94,36 +117,42 @@ public class AnnotationColourGradient extends ResidueColourScheme
      */\r
     public Color findColour(String n, int j)\r
     {\r
+        currentColour = Color.white;\r
+\r
         if ((threshold == 0) || aboveThreshold(n, j))\r
         {\r
-          if( j+1>annotation.annotations.length || annotation.annotations[j]==null)\r
-            currentColour = Color.white;\r
-          else\r
+          if( j<annotation.annotations.length\r
+              && annotation.annotations[j]!=null\r
+              && !jalview.util.Comparison.isGap(n.charAt(0)))\r
           {\r
             if(  aboveAnnotationThreshold==NO_THRESHOLD\r
                || (annotationThreshold!=null && aboveAnnotationThreshold==ABOVE_THRESHOLD && annotation.annotations[j].value>=annotationThreshold.value)\r
                || (annotationThreshold!=null && aboveAnnotationThreshold==BELOW_THRESHOLD && annotation.annotations[j].value<=annotationThreshold.value))\r
             {\r
+              if(colourScheme!=null)\r
+              {\r
+                currentColour = colourScheme.findColour(n, j);\r
+              }\r
+              else if(range!=0)\r
+              {\r
                 dr = rr *\r
-                     ((annotation.annotations[j].value-annotation.graphMin) / range )\r
-                     +r1;\r
+                    ( (annotation.annotations[j].value - annotation.graphMin) /\r
+                     range)\r
+                    + r1;\r
                 dg = gg *\r
-                     ((annotation.annotations[j].value-annotation.graphMin)  / range )\r
-                     +g1;\r
+                    ( (annotation.annotations[j].value - annotation.graphMin) /\r
+                     range)\r
+                    + g1;\r
                 db = bb *\r
-                     ((annotation.annotations[j].value-annotation.graphMin) / range )\r
-                     +b1;\r
+                    ( (annotation.annotations[j].value - annotation.graphMin) /\r
+                     range)\r
+                    + b1;\r
 \r
-                 currentColour = new Color( (int) dr, (int) dg, (int) db);\r
+                currentColour = new Color( (int) dr, (int) dg, (int) db);\r
+              }\r
             }\r
-            else\r
-              currentColour = Color.white;\r
           }\r
         }\r
-        else\r
-        {\r
-            return Color.white;\r
-        }\r
 \r
         if(conservationColouring)\r
          applyConservation(j);\r