JAL-2588 Added tests
[jalview.git] / src / jalview / renderer / OverviewRenderer.java
index 77c3700..8d9f036 100644 (file)
@@ -29,7 +29,6 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.renderer.seqfeatures.FeatureColourFinder;
 import jalview.renderer.seqfeatures.FeatureRenderer;
-import jalview.util.Comparison;
 import jalview.viewmodel.OverviewDimensions;
 
 import java.awt.Color;
@@ -40,8 +39,6 @@ public class OverviewRenderer
 {
   private FeatureColourFinder finder;
 
-  private jalview.api.SequenceRenderer sr;
-
   // image to render on
   private BufferedImage miniMe;
 
@@ -59,12 +56,14 @@ public class OverviewRenderer
 
   private ResidueShaderI shader;
 
-  public OverviewRenderer(jalview.api.SequenceRenderer seqRenderer,
-          FeatureRenderer fr, OverviewDimensions od, AlignmentI alignment,
+  private ResidueColourFinder resColFinder;
+
+  public OverviewRenderer(FeatureRenderer fr, OverviewDimensions od,
+          AlignmentI alignment,
           ResidueShaderI resshader)
   {
-    sr = seqRenderer;
     finder = new FeatureColourFinder(fr);
+    resColFinder = new OverviewResColourFinder();
 
     al = alignment;
     shader = resshader;
@@ -162,7 +161,8 @@ public class OverviewRenderer
 
     if ((seq != null) && (seq.getLength() > lastcol))
     {
-      color = getResidueColour(allGroups, seq, lastcol, fcfinder);
+      color = resColFinder.getResidueColour(shader, allGroups, seq, lastcol,
+              fcfinder);
     }
 
     if (isHidden)
@@ -173,83 +173,6 @@ public class OverviewRenderer
     return color.getRGB();
   }
 
-  private Color getResidueColour(SequenceGroup[] allGroups,
-          final SequenceI seq, int position,
-          FeatureColourFinder finder)
-  {
-    Color col = getResidueBoxColour(allGroups, seq, position);
-
-    if (finder != null)
-    {
-      col = finder.findFeatureColour(col, seq, position);
-    }
-    return col;
-  }
-
-  protected Color getResidueBoxColour(SequenceGroup[] allGroups,
-          SequenceI seq, int i)
-  {
-
-    ResidueShaderI currentShader;
-
-    SequenceGroup currentSequenceGroup = inCurrentSequenceGroup(allGroups,
-            i);
-    if (currentSequenceGroup != null)
-    {
-      currentShader = currentSequenceGroup.getGroupColourScheme();
-    }
-    else
-    {
-      currentShader = shader;
-    }
-
-    return getBoxColour(currentShader, seq, i);
-  }
-
-  SequenceGroup inCurrentSequenceGroup(SequenceGroup[] allGroups, int res)
-  {
-    if (allGroups == null)
-    {
-      return null;
-    }
-
-    for (int i = 0; i < allGroups.length; i++)
-    {
-      if ((allGroups[i].getStartRes() <= res)
-              && (allGroups[i].getEndRes() >= res))
-      {
-        return (allGroups[i]);
-      }
-    }
-
-    return null;
-  }
-
-  Color getBoxColour(ResidueShaderI shader, SequenceI seq, int i)
-  {
-    Color resBoxColour = Color.white;
-    char currentChar = seq.getCharAt(i);
-
-    if (shader.getColourScheme() != null)
-    {
-      if (Comparison.isGap(currentChar)
-              && !shader.getColourScheme().hasGapColour())
-      {
-        resBoxColour = Color.lightGray;
-      }
-      else
-      {
-        resBoxColour = shader.findColour(currentChar, i, seq);
-      }
-    }
-    else if (Comparison.isGap(currentChar))
-    {
-      resBoxColour = Color.lightGray;
-    }
-
-    return resBoxColour;
-  }
-
   /**
    * Draw the alignment annotation in the overview panel
    *