JAL-2588 Gap colour scheme now shown in overview
authorkiramt <k.mourao@dundee.ac.uk>
Wed, 28 Jun 2017 09:55:50 +0000 (10:55 +0100)
committerkiramt <k.mourao@dundee.ac.uk>
Wed, 28 Jun 2017 09:55:50 +0000 (10:55 +0100)
src/jalview/gui/SequenceRenderer.java
src/jalview/schemes/ColourSchemeI.java
src/jalview/schemes/ResidueColourScheme.java
src/jalview/schemes/UserColourScheme.java

index 51b1a3a..7a1e263 100755 (executable)
@@ -140,7 +140,8 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
   {
     if (shader.getColourScheme() != null)
     {
-      if (forOverview && Comparison.isGap(seq.getCharAt(i)))
+      if (forOverview && Comparison.isGap(seq.getCharAt(i))
+              && !shader.getColourScheme().hasGapColour())
       {
         resBoxColour = Color.lightGray;
       }
index f16ca21..d70b4e2 100755 (executable)
@@ -98,4 +98,11 @@ public interface ColourSchemeI
    * @return
    */
   boolean isSimple();
+
+  /**
+   * Answers true if the colour scheme has a colour specified for gaps.
+   * 
+   * @return
+   */
+  boolean hasGapColour();
 }
index b47b82e..3e8daf9 100755 (executable)
@@ -200,4 +200,14 @@ public abstract class ResidueColourScheme implements ColourSchemeI
   {
     return true;
   }
+
+  /**
+   * Default method returns false. Override this to return true in colour
+   * schemes that have a colour associated with gap residues.
+   */
+  @Override
+  public boolean hasGapColour()
+  {
+    return false;
+  }
 }
index 8e58c20..d83e9c2 100755 (executable)
@@ -286,7 +286,7 @@ public class UserColourScheme extends ResidueColourScheme
     /*
      * step 1: build a map from colours to the symbol(s) that have the colour
      */
-    Map<Color, List<String>> colours = new HashMap<Color, List<String>>();
+    Map<Color, List<String>> colours = new HashMap<>();
 
     for (char symbol = 'A'; symbol <= 'Z'; symbol++)
     {
@@ -319,7 +319,7 @@ public class UserColourScheme extends ResidueColourScheme
     /*
      * step 2: make a list of { A,G,R=12f9d6 } residues/colour specs
      */
-    List<String> residueColours = new ArrayList<String>();
+    List<String> residueColours = new ArrayList<>();
     for (Entry<Color, List<String>> cols : colours.entrySet())
     {
       boolean first = true;
@@ -349,4 +349,10 @@ public class UserColourScheme extends ResidueColourScheme
     Collections.sort(residueColours);
     return StringUtils.listToDelimitedString(residueColours, ";");
   }
+
+  @Override
+  public boolean hasGapColour()
+  {
+    return (findColour(' ') != null);
+  }
 }