JAL-1713 fix typo; overview in project with open overview in preferences
[jalview.git] / src / jalview / renderer / OverviewResColourFinder.java
index 5ed218b..ef4d04b 100644 (file)
  */
 package jalview.renderer;
 
+import java.awt.Color;
+
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.util.Comparison;
 
-import java.awt.Color;
-
 public class OverviewResColourFinder extends ResidueColourFinder
 {
+  /*
+   * colour for gaps (unless overridden by colour scheme)
+   * - as set in Preferences, _or_ read from a project file
+   */
+  Color gapColour;
+
+  /*
+   * colour for residues if no colour scheme set (before feature colouring)
+   * - as set in Preferences, _or_ read from a project file
+   */
+  Color residueColour;
+
+  /*
+   * colour for hidden regions
+   * - as set in Preferences, _or_ read from a project file
+   */
+  Color hiddenColour;
+
+  /**
+   * Constructor without colour settings (used by applet)
+   * @deprecated
+   */
+  @Deprecated
+  public OverviewResColourFinder()
+  {
+    this(Color.lightGray, Color.white, Color.darkGray.darker());
+  }
+
+  /**
+   * Constructor given default colours for gaps, residues and hidden regions
+   * 
+   * @param gaps
+   * @param residues
+   * @param hidden
+   */
+  public OverviewResColourFinder(Color gaps, Color residues, Color hidden)
+  {
+    gapColour = gaps;
+    residueColour = residues;
+    hiddenColour = hidden;
+  }
+
   @Override
   public Color getBoxColour(ResidueShaderI shader, SequenceI seq, int i)
   {
-    Color resBoxColour = Color.white;
+    Color resBoxColour = residueColour;
     char currentChar = seq.getCharAt(i);
 
     // In the overview window, gaps are coloured grey, unless the colour scheme
@@ -40,9 +82,9 @@ public class OverviewResColourFinder extends ResidueColourFinder
     if (shader.getColourScheme() != null)
     {
       if (Comparison.isGap(currentChar)
-              && !shader.getColourScheme().hasGapColour())
+              && (!shader.getColourScheme().hasGapColour()))
       {
-        resBoxColour = Color.lightGray;
+        resBoxColour = gapColour;
       }
       else
       {
@@ -51,7 +93,7 @@ public class OverviewResColourFinder extends ResidueColourFinder
     }
     else if (Comparison.isGap(currentChar))
     {
-      resBoxColour = Color.lightGray;
+      resBoxColour = gapColour;
     }
 
     return resBoxColour;
@@ -63,8 +105,8 @@ public class OverviewResColourFinder extends ResidueColourFinder
    */
   @Override
   protected Color getResidueBoxColour(boolean showBoxes,
-          ResidueShaderI shader,
-          SequenceGroup[] allGroups, SequenceI seq, int i)
+          ResidueShaderI shader, SequenceGroup[] allGroups, SequenceI seq,
+          int i)
   {
     ResidueShaderI currentShader;
     SequenceGroup currentSequenceGroup = getCurrentSequenceGroup(allGroups,
@@ -80,4 +122,36 @@ public class OverviewResColourFinder extends ResidueColourFinder
 
     return getBoxColour(currentShader, seq, i);
   }
+
+  /**
+   * Returns the colour used for hidden regions
+   * 
+   * @return
+   */
+  public Color getHiddenColour()
+  {
+    return hiddenColour;
+  }
+
+  /**
+   * Returns the colour used for gaps, if not overridden by the alignment colour
+   * scheme
+   * 
+   * @return
+   */
+  public Color getGapColour()
+  {
+    return gapColour;
+  }
+
+  /**
+   * Returns the colour used for residues (before applying any feature
+   * colouring) if there is no alignment colour scheme
+   * 
+   * @return
+   */
+  public Color getResidueColour()
+  {
+    return residueColour;
+  }
 }