JAL-2438 clarify code and javadoc, reinstate updateFeatures() check
[jalview.git] / src / jalview / renderer / seqfeatures / FeatureColourFinder.java
index 9a1ecf9..0c18d39 100644 (file)
@@ -1,5 +1,6 @@
 package jalview.renderer.seqfeatures;
 
+import jalview.api.FeatureRenderer;
 import jalview.api.FeaturesDisplayedI;
 import jalview.datamodel.SequenceI;
 import jalview.viewmodel.seqfeatures.FeatureRendererModel;
@@ -19,7 +20,7 @@ public class FeatureColourFinder
   /*
    * the class we delegate feature finding to
    */
-  private jalview.api.FeatureRenderer featureRenderer;
+  private FeatureRenderer featureRenderer;
 
   /*
    * a 1-pixel image on which features can be drawn, for the case where
@@ -32,7 +33,7 @@ public class FeatureColourFinder
    * 
    * @param fr
    */
-  public FeatureColourFinder(jalview.api.FeatureRenderer fr)
+  public FeatureColourFinder(FeatureRenderer fr)
   {
     featureRenderer = fr;
     offscreenImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
@@ -70,21 +71,28 @@ public class FeatureColourFinder
     Graphics g = null;
 
     /*
-     * if transparency applies, get colours drawn to a 1x1 pixel
-     * graphics context that has been primed with the default colour
+     * if transparency applies, provide a notional 1x1 graphics context 
+     * that has been primed with the default colour
      */
     if (featureRenderer.getTransparency() != 1f)
     {
       g = offscreenImage.getGraphics();
-      offscreenImage.setRGB(0, 0, defaultColour.getRGB());
+      if (defaultColour != null)
+      {
+        offscreenImage.setRGB(0, 0, defaultColour.getRGB());
+      }
     }
 
     Color c = featureRenderer.findFeatureColour(seq, column, g);
+    if (c == null)
+    {
+      return defaultColour;
+    }
 
-    if (c != null && g != null)
+    if (g != null)
     {
       c = new Color(offscreenImage.getRGB(0, 0));
     }
-    return c == null ? defaultColour : c;
+    return c;
   }
 }