normalised logo rendering (JAL-958)
[jalview.git] / src / jalview / datamodel / SequenceGroup.java
index 7bb9670..6bee416 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * 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
  * 
  * This file is part of Jalview.
  * 
@@ -91,6 +91,11 @@ public class SequenceGroup
    * consensus calculation property
    */
   private boolean showSequenceLogo = false;
+  /**
+   * flag indicating if logo should be rendered normalised
+   */
+  private boolean normaliseSequenceLogo;
+
 
   /**
    * @return the includeAllConsSymbols
@@ -510,12 +515,15 @@ public class SequenceGroup
         }
         if (cs != null)
         {
-          cs.setConservation(c);
-
-          if (cs instanceof ClustalxColourScheme)
+          if (cs.conservationApplied())
           {
-            ((ClustalxColourScheme) cs)
-                    .resetClustalX(sequences, getWidth());
+            cs.setConservation(c);
+
+            if (cs instanceof ClustalxColourScheme)
+            {
+              ((ClustalxColourScheme) cs).resetClustalX(sequences,
+                      getWidth());
+            }
           }
         }
       }
@@ -998,6 +1006,20 @@ public class SequenceGroup
   private boolean showConsensusHistogram;
 
   /**
+   * set this alignmentAnnotation object as the one used to render consensus
+   * annotation
+   * 
+   * @param aan
+   */
+  public void setConsensus(AlignmentAnnotation aan)
+  {
+    if (consensus == null)
+    {
+      consensus = aan;
+    }
+  }
+
+  /**
    * 
    * @return automatically calculated consensus row
    */
@@ -1026,6 +1048,20 @@ public class SequenceGroup
   }
 
   /**
+   * set this alignmentAnnotation object as the one used to render consensus
+   * annotation
+   * 
+   * @param aan
+   */
+  public void setConservationRow(AlignmentAnnotation aan)
+  {
+    if (conservation == null)
+    {
+      conservation = aan;
+    }
+  }
+
+  /**
    * get the conservation annotation row for this group
    * 
    * @return autoCalculated annotation row
@@ -1136,4 +1172,17 @@ public class SequenceGroup
   {
     return showConsensusHistogram;
   }
+
+  /**
+   * set flag indicating if logo should be normalised when rendered
+   * @param norm
+   */
+  public void setNormaliseSequenceLogo(boolean norm)
+  {
+    normaliseSequenceLogo=norm;
+  }
+  public boolean isNormaliseSequenceLogo()
+  {
+    return normaliseSequenceLogo;
+  }
 }