CurrentColour must not be accessed by multiple sequence renderers
[jalview.git] / src / jalview / schemes / ResidueColourScheme.java
index 7c36208..b905c45 100755 (executable)
@@ -52,12 +52,6 @@ public class ResidueColourScheme implements ColourSchemeI
    /** DOCUMENT ME!! */\r
    int inc = 30;\r
 \r
-   /**\r
-    * The colour to be calculated, manipulated and returned\r
-    */\r
-   Color currentColour = null;\r
-\r
-\r
 \r
     /**\r
      * Creates a new ResidueColourScheme object.\r
@@ -90,7 +84,7 @@ public class ResidueColourScheme implements ColourSchemeI
 \r
    public Color findColour(String s, int j)\r
    {\r
-\r
+       Color currentColour;\r
        int index = ResidueProperties.aaIndex[s.charAt(0)];\r
 \r
        if ((threshold == 0) || aboveThreshold(ResidueProperties.aa[index], j))\r
@@ -103,7 +97,7 @@ public class ResidueColourScheme implements ColourSchemeI
        }\r
 \r
        if(conservationColouring)\r
-         applyConservation(j);\r
+         currentColour = applyConservation(currentColour, j);\r
 \r
 \r
        return currentColour;\r
@@ -153,14 +147,16 @@ public class ResidueColourScheme implements ColourSchemeI
           s = String.valueOf(c);\r
         }\r
 \r
+        if (consensus == null || consensus[j] == null)\r
+          return false;\r
 \r
-      if ((((Integer) consensus[j].get(AAFrequency.MAXCOUNT)).intValue() != -1) &&\r
-                consensus[j].contains(s))\r
+        if ( ( ( (Integer) consensus[j].get(AAFrequency.MAXCOUNT)).intValue() != -1) &&\r
+            consensus[j].contains(s))\r
         {\r
-            if (((Float)consensus[j].get(ignoreGaps)).floatValue() >= threshold)\r
-            {\r
-                return true;\r
-            }\r
+          if ( ( (Float) consensus[j].get(ignoreGaps)).floatValue() >= threshold)\r
+          {\r
+            return true;\r
+          }\r
         }\r
 \r
         return false;\r
@@ -225,7 +221,7 @@ public class ResidueColourScheme implements ColourSchemeI
     * @return DOCUMENT ME!\r
     */\r
 \r
-   void applyConservation(int i)\r
+   Color applyConservation(Color currentColour, int i)\r
    {\r
 \r
      if ((conservation[i] != '*') && (conservation[i] != '+'))\r
@@ -239,8 +235,7 @@ public class ResidueColourScheme implements ColourSchemeI
          float t = 11 - (conservation[i] - '0');\r
          if(t==0)\r
          {\r
-           currentColour = Color.white;\r
-           return;\r
+           return Color.white;\r
          }\r
 \r
          int red = currentColour.getRed();\r
@@ -265,6 +260,7 @@ public class ResidueColourScheme implements ColourSchemeI
            currentColour = new Color(red, green, blue);\r
        }\r
        }\r
+       return currentColour;\r
    }\r
 \r
 \r