(JAL-958) - normalised sequence logo for applet
[jalview.git] / src / jalview / appletgui / AlignViewport.java
index 4d97720..9af5ac2 100644 (file)
@@ -22,14 +22,14 @@ import java.util.*;
 import java.awt.*;
 
 import jalview.analysis.*;
+import jalview.api.AlignViewportI;
 import jalview.bin.*;
 import jalview.datamodel.*;
 import jalview.schemes.*;
 import jalview.structure.SelectionSource;
-import jalview.structure.StructureSelectionManager;
 import jalview.structure.VamsasSource;
 
-public class AlignViewport implements SelectionSource, VamsasSource
+public class AlignViewport implements AlignViewportI, SelectionSource, VamsasSource
 {
   int startRes;
 
@@ -243,7 +243,9 @@ public class AlignViewport implements SelectionSource, VamsasSource
       followSelection = followHighlight;
 
       showSequenceLogo = applet.getDefaultParameter("showSequenceLogo", showSequenceLogo);
-      
+
+      normaliseSequenceLogo = applet.getDefaultParameter("normaliseSequenceLogo", normaliseSequenceLogo);
+
       showGroupConsensus = applet.getDefaultParameter("showGroupConsensus", showGroupConsensus);
       
       showGroupConservation = applet.getDefaultParameter("showGroupConservation", showGroupConservation);
@@ -477,15 +479,22 @@ public class AlignViewport implements SelectionSource, VamsasSource
   ConservationThread conservationThread;
 
   ConsensusThread consensusThread;
+  
+//  StrucConsensusThread strucConsensusThread;
+
 
   boolean consUpdateNeeded = false;
 
   static boolean UPDATING_CONSENSUS = false;
 
+  static boolean UPDATING_STRUC_CONSENSUS = false;
+
   static boolean UPDATING_CONSERVATION = false;
 
   boolean updatingConsensus = false;
 
+  boolean updatingStrucConsensus = false;
+
   boolean updatingConservation = false;
 
   /**
@@ -1640,6 +1649,10 @@ public class AlignViewport implements SelectionSource, VamsasSource
    * should consensus profile be rendered by default
    */
   public boolean showSequenceLogo = false;
+  /**
+   * should consensus profile be rendered normalised to row height
+   */
+  public  boolean normaliseSequenceLogo = false;
 
   /**
    * should consensus histograms be rendered by default
@@ -1758,4 +1771,62 @@ public class AlignViewport implements SelectionSource, VamsasSource
       }
     }
   }
+
+  @Override
+  public boolean hasHiddenColumns()
+  {
+    return hasHiddenColumns;
+  }
+  
+  public boolean isNormaliseSequenceLogo()
+  {
+    return normaliseSequenceLogo;
+  }
+
+  public void setNormaliseSequenceLogo(boolean state)
+  {
+    normaliseSequenceLogo = state;
+  }
+
+  public boolean isCalcInProgress()
+  {
+    // TODO generalise to iterate over all calculators associated with av
+    return updatingConsensus || updatingConservation || updatingStrucConsensus;
+  }
+
+  public boolean isCalculationInProgress(
+          AlignmentAnnotation alignmentAnnotation)
+  {
+    if (!alignmentAnnotation.autoCalculated)
+      return false;
+    if ((updatingConsensus && consensus==alignmentAnnotation)
+            || (updatingConservation && (conservation==alignmentAnnotation || quality==alignmentAnnotation))
+            // || (updatingStrucConsensus && strucConsensus==alignmentAnnotation)
+            )
+    {
+      return true;
+    }
+    return false;
+  }
+
+  /**
+   * 
+   * @return true if alignment characters should be displayed 
+   */
+  public boolean isValidCharWidth()
+  {
+    return validCharWidth;
+  }
+
+  @Override
+  public Hashtable[] getSequenceConsensusHash()
+  {
+    return hconsensus;
+  }
+
+  @Override
+  public Hashtable[] getRnaStructureConsensusHash()
+  {
+    return null; // TODO: JAL-891 port to jvlite : refactor and introduce hStrucConsensus;
+  }
 }