JAL-1385 JAL-535 refactor sequence colour settings to abstract alignment view model
[jalview.git] / src / jalview / appletgui / AlignViewport.java
index 9258e3a..9e4f071 100644 (file)
@@ -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 
@@ -22,7 +22,6 @@ import java.util.*;
 import java.awt.*;
 
 import jalview.analysis.*;
-import jalview.api.AlignCalcManagerI;
 import jalview.api.AlignViewportI;
 import jalview.bin.*;
 import jalview.datamodel.*;
@@ -30,10 +29,9 @@ import jalview.schemes.*;
 import jalview.structure.SelectionSource;
 import jalview.structure.VamsasSource;
 import jalview.viewmodel.AlignmentViewport;
-import jalview.workers.ConservationThread;
-import jalview.workers.ConsensusThread;
 
-public class AlignViewport extends AlignmentViewport implements AlignViewportI, SelectionSource, VamsasSource 
+public class AlignViewport extends AlignmentViewport implements
+        AlignViewportI, SelectionSource, VamsasSource
 {
   int startRes;
 
@@ -63,12 +61,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
 
   boolean upperCasebold = false;
 
-  boolean colourAppliesToAllGroups = true;
-
-  boolean conservationColourSelected = false;
-
-  boolean abovePIDThreshold = false;
-
   int charHeight;
 
   int charWidth;
@@ -95,24 +87,22 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
   // currently visible, in the correct order or rendering
   public Hashtable featuresDisplayed;
 
-
   boolean showHiddenMarkers = true;
 
   public jalview.bin.JalviewLite applet;
 
-  Hashtable sequenceColours;
-
   boolean MAC = false;
 
   Stack historyList = new Stack();
 
   Stack redoList = new Stack();
-    
-  public void finalize() {
-    applet=null;
-    quality=null;
-    alignment=null;
-    colSel=null;
+
+  public void finalize()
+  {
+    applet = null;
+    quality = null;
+    alignment = null;
+    colSel = null;
   }
 
   public AlignViewport(AlignmentI al, JalviewLite applet)
@@ -184,15 +174,19 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     {
       showJVSuffix = applet.getDefaultParameter("showFullId", showJVSuffix);
 
-      showAnnotation = applet.getDefaultParameter("showAnnotation", showAnnotation);
-      
-      showConservation = applet.getDefaultParameter("showConservation", showConservation);
-      
+      showAnnotation = applet.getDefaultParameter("showAnnotation",
+              showAnnotation);
+
+      showConservation = applet.getDefaultParameter("showConservation",
+              showConservation);
+
       showQuality = applet.getDefaultParameter("showQuality", showQuality);
 
-      showConsensus = applet.getDefaultParameter("showConsensus", showConsensus);
+      showConsensus = applet.getDefaultParameter("showConsensus",
+              showConsensus);
 
-      showUnconserved = applet.getDefaultParameter("showUnconserved", showUnconserved);
+      showUnconserved = applet.getDefaultParameter("showUnconserved",
+              showUnconserved);
 
       String param = applet.getParameter("upperCase");
       if (param != null)
@@ -204,19 +198,26 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
       }
       sortByTree = applet.getDefaultParameter("sortByTree", sortByTree);
 
-      followHighlight = applet.getDefaultParameter("automaticScrolling",followHighlight);
+      followHighlight = applet.getDefaultParameter("automaticScrolling",
+              followHighlight);
       followSelection = followHighlight;
 
-      showSequenceLogo = applet.getDefaultParameter("showSequenceLogo", showSequenceLogo);
+      showSequenceLogo = applet.getDefaultParameter("showSequenceLogo",
+              showSequenceLogo);
+
+      normaliseSequenceLogo = applet.getDefaultParameter(
+              "normaliseSequenceLogo", applet.getDefaultParameter(
+                      "normaliseLogo", normaliseSequenceLogo));
+
+      showGroupConsensus = applet.getDefaultParameter("showGroupConsensus",
+              showGroupConsensus);
+
+      showGroupConservation = applet.getDefaultParameter(
+              "showGroupConservation", showGroupConservation);
 
-      normaliseSequenceLogo = applet.getDefaultParameter("normaliseSequenceLogo", normaliseSequenceLogo);
+      showConsensusHistogram = applet.getDefaultParameter(
+              "showConsensusHistogram", showConsensusHistogram);
 
-      showGroupConsensus = applet.getDefaultParameter("showGroupConsensus", showGroupConsensus);
-      
-      showGroupConservation = applet.getDefaultParameter("showGroupConservation", showGroupConservation);
-        
-      showConsensusHistogram = applet.getDefaultParameter("showConsensusHistogram", showConsensusHistogram);
-      
     }
 
     if (applet != null)
@@ -262,7 +263,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     return showSequenceFeatures;
   }
 
-
   /**
    * get the consensus sequence as displayed under the PID consensus annotation
    * row.
@@ -300,26 +300,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     return sq;
   }
 
-  public boolean getConservationSelected()
-  {
-    return conservationColourSelected;
-  }
-
-  public void setConservationSelected(boolean b)
-  {
-    conservationColourSelected = b;
-  }
-
-  public boolean getAbovePIDThreshold()
-  {
-    return abovePIDThreshold;
-  }
-
-  public void setAbovePIDThreshold(boolean b)
-  {
-    abovePIDThreshold = b;
-  }
-
   public int getStartRes()
   {
     return startRes;
@@ -538,16 +518,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     return currentTree;
   }
 
-  public void setColourAppliesToAllGroups(boolean b)
-  {
-    colourAppliesToAllGroups = b;
-  }
-
-  public boolean getColourAppliesToAllGroups()
-  {
-    return colourAppliesToAllGroups;
-  }
-
   public boolean getShowJVSuffix()
   {
     return showJVSuffix;
@@ -610,10 +580,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     }
   }
 
-
-
-
   public boolean getShowHiddenMarkers()
   {
     return showHiddenMarkers;
@@ -624,35 +590,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     showHiddenMarkers = show;
   }
 
-  public Color getSequenceColour(SequenceI seq)
-  {
-    if (sequenceColours == null || !sequenceColours.containsKey(seq))
-    {
-      return Color.white;
-    }
-    else
-    {
-      return (Color) sequenceColours.get(seq);
-    }
-  }
-
-  public void setSequenceColour(SequenceI seq, Color col)
-  {
-    if (sequenceColours == null)
-    {
-      sequenceColours = new Hashtable();
-    }
-
-    if (col == null)
-    {
-      sequenceColours.remove(seq);
-    }
-    else
-    {
-      sequenceColours.put(seq, col);
-    }
-  }
-
   boolean centreColumnLabels;
 
   public boolean getCentreColumnLabels()
@@ -660,21 +597,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
     return centreColumnLabels;
   }
 
-  public void updateSequenceIdColours()
-  {
-    
-    for (SequenceGroup sg:alignment.getGroups())
-    {
-      if (sg.idColour != null)
-      {
-        for (SequenceI s:sg.getSequences(getHiddenRepSequences()))
-        {
-          this.setSequenceColour(s, sg.idColour);
-        }
-      }
-    }
-  }
-
   public boolean followHighlight = true;
 
   public boolean getFollowHighlight()
@@ -692,6 +614,7 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
   {
     return followSelection;
   }
+
   public void sendSelection()
   {
     jalview.structure.StructureSelectionManager
@@ -700,9 +623,6 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
                     new ColumnSelection(getColumnSelection()), this);
   }
 
-
-
-
   /**
    * synthesize a column selection if none exists so it covers the given
    * selection group. if wholewidth is false, no column selection is made if the
@@ -741,7 +661,7 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
   {
     return hasHiddenColumns;
   }
-  
+
   public boolean isNormaliseSequenceLogo()
   {
     return normaliseSequenceLogo;
@@ -754,7 +674,7 @@ public class AlignViewport extends AlignmentViewport implements AlignViewportI,
 
   /**
    * 
-   * @return true if alignment characters should be displayed 
+   * @return true if alignment characters should be displayed
    */
   public boolean isValidCharWidth()
   {