JAL-3719 Format->Colour Gaps option uses Overview gap colour logic pulled up to align...
[jalview.git] / src / jalview / gui / SequenceRenderer.java
index fb967ed..33d34a2 100755 (executable)
@@ -21,6 +21,7 @@
 package jalview.gui;
 
 import jalview.api.AlignViewportI;
+import jalview.bin.Cache;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.renderer.ResidueColourFinder;
@@ -53,6 +54,9 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
 
   ResidueColourFinder resColourFinder;
 
+  private boolean colourGaps;
+  private Color gapColour=Color.white;
+
   /**
    * Creates a new SequenceRenderer object
    * 
@@ -65,12 +69,11 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
   }
 
   /**
-   * DOCUMENT ME!
-   * 
-   * @param b
-   *          DOCUMENT ME!
+   * initialise state for a render
+   * @param renderGaps - whether gap symbols are shown
+   * @param colourGaps - whether boxes for gaps are to be coloured
    */
-  public void prepare(Graphics g, boolean renderGaps)
+  public void prepare(Graphics g, boolean renderGaps, boolean colourGaps)
   {
     graphics = g;
     fm = g.getFontMetrics();
@@ -82,6 +85,14 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
             && av.getCharWidth() == dwidth);
 
     this.renderGaps = renderGaps;
+    this.colourGaps = colourGaps;
+    this.gapColour = Color.white;
+    if (colourGaps)
+    {
+      this.gapColour = Cache.getDefaultColour(Preferences.GAP_COLOUR,
+              jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP);
+    }
+    resColourFinder = new ResidueColourFinder(gapColour);
   }
 
   /**
@@ -161,7 +172,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
   public synchronized void drawBoxes(SequenceI seq, int start, int end,
           int y1)
   {
-    Color resBoxColour = Color.white;
+    Color resBoxColour = gapColour;
 
     if (seq == null)
     {
@@ -199,6 +210,8 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
           resBoxColour = resColourFinder
                   .getBoxColour(av.getResidueShading(), seq, i);
         }
+      } else {
+        resBoxColour = gapColour;
       }
 
       if (resBoxColour != tempColour)