Merge branch 'features/JAL-2360colourSchemeApplicability' into
[jalview.git] / src / jalview / schemes / ResidueColourScheme.java
index fc8b1b1..358417b 100755 (executable)
@@ -24,6 +24,7 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.SequenceCollectionI;
 import jalview.datamodel.SequenceI;
+import jalview.util.Comparison;
 
 import java.awt.Color;
 import java.util.Map;
@@ -86,10 +87,18 @@ public abstract class ResidueColourScheme implements ColourSchemeI
   /**
    * Find a colour without an index in a sequence
    */
-  @Override
   public Color findColour(char c)
   {
-    return colors == null ? Color.white : colors[symbolIndex[c]];
+    Color colour = Color.white;
+
+    if (!Comparison.isGap(c) && colors != null && symbolIndex != null
+            && c < symbolIndex.length
+            && symbolIndex[c] < colors.length)
+    {
+      colour = colors[symbolIndex[c]];
+    }
+
+    return colour;
   }
 
   /**
@@ -104,18 +113,19 @@ public abstract class ResidueColourScheme implements ColourSchemeI
     return findColour(c, j, seq);
   }
 
+  /**
+   * Default implementation looks up the residue colour in a fixed scheme, or
+   * returns White if not found. Override this method for a colour scheme that
+   * depends on the column position or sequence.
+   * 
+   * @param c
+   * @param j
+   * @param seq
+   * @return
+   */
   protected Color findColour(char c, int j, SequenceI seq)
   {
-    Color colour = Color.white;
-
-    if (colors != null && symbolIndex != null && c < symbolIndex.length
-            && symbolIndex[c] < colors.length)
-    {
-      colour = colors[symbolIndex[c]];
-    }
-    // colour = adjustColour(c, j, colour);
-
-    return colour;
+    return findColour(c);
   }
 
   @Override