JAL-1370 allow show unconserved to reflect differences from the current reference...
[jalview.git] / src / jalview / appletgui / SequenceRenderer.java
index 044fcbe..b048e91 100755 (executable)
@@ -1,13 +1,13 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- * 
+ *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
@@ -201,7 +201,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
     }
 
     char s = ' ';
-
+    boolean srep = av.isDisplayReferenceSeq();
     for (int i = start; i <= end; i++)
     {
       graphics.setColor(Color.black);
@@ -226,9 +226,8 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
         }
         if (currentSequenceGroup.getShowNonconserved())
         {
-          // cheat - use this if we have a consensus for each group: s =
-          // getDisplayChar(currentSequenceGroup.getConsensus(), i, s, '.');
-          s = getDisplayChar(av.getAlignmentConsensusAnnotation(), i, s, '.');
+          s = getDisplayChar(srep, i, s,
+                  '.');
         }
       }
       else
@@ -252,7 +251,8 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
         }
         if (av.getShowUnconserved())
         {
-          s = getDisplayChar(av.getAlignmentConsensusAnnotation(), i, s, '.');
+          s = getDisplayChar(srep, i, s,
+                  '.');
 
         }
       }
@@ -284,10 +284,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
 
   }
 
-  private char getDisplayChar(AlignmentAnnotation consensus, int position,
+  private char getDisplayChar(final boolean usesrep, int position,
           char s, char c)
   {
-    char conschar = consensus.annotations[position].displayCharacter
+    // TODO - use currentSequenceGroup rather than alignemnt 
+    // currentSequenceGroup.getConsensus()
+    char conschar = (usesrep) ? av.getAlignment().getSeqrep().getCharAt(position) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
             .charAt(0);
     if (conschar != '-' && s == conschar)
     {