Sequence label colour stored for each sequence group
[jalview.git] / src / jalview / gui / AlignViewport.java
index a2d5ec2..f798671 100755 (executable)
@@ -167,7 +167,7 @@ public class AlignViewport
       showAnnotation = Cache.getDefault("SHOW_ANNOTATIONS", true);
 
       rightAlignIds = Cache.getDefault("RIGHT_ALIGN_IDS", false);
-
+      centreColumnLabels = Cache.getDefault("CENTRE_COLUMN_LABELS", false);
       autoCalculateConsensus = Cache.getDefault("AUTO_CALC_CONSENSUS", true);
 
       padGaps = Cache.getDefault("PAD_GAPS", true);
@@ -456,9 +456,14 @@ public class AlignViewport
     boolean updatingConsensus = false;
 
     boolean updatingConservation = false;
+    /**
+     * centre columnar annotation labels in displayed alignment annotation
+     * TODO: add to jalviewXML and annotation display settings
+     */
+    boolean centreColumnLabels=false;
 
     /**
-     * DOCUMENT ME!
+     * trigger update of conservation annotation
      */
     public void updateConservation(final AlignmentPanel ap)
     {
@@ -472,7 +477,7 @@ public class AlignViewport
     }
 
     /**
-     * DOCUMENT ME!
+     * trigger update of consensus annotation
      */
     public void updateConsensus(final AlignmentPanel ap)
     {
@@ -1893,4 +1898,33 @@ public class AlignViewport
       }
       return false;
     }
+    
+    public boolean getCentreColumnLabels()
+    {
+      return centreColumnLabels;
+    }
+    public void setCentreColumnLabels(boolean centrecolumnlabels)
+    {
+      centreColumnLabels =  centrecolumnlabels;
+    }
+    public void updateSequenceIdColours()
+    {
+      Vector groups = alignment.getGroups();
+      if (sequenceColours==null)
+      {
+        sequenceColours = new Hashtable();
+      }
+      for (int ig=0,igSize=groups.size(); ig<igSize; ig++)
+      {
+        SequenceGroup sg = (SequenceGroup) groups.elementAt(ig);
+        if (sg.idColour!=null)
+        {
+          Vector sqs = sg.getSequences(hiddenRepSequences);
+          for (int s=0,sSize=sqs.size();s<sSize;s++)
+          {
+            sequenceColours.put(sqs.elementAt(s), sg.idColour);
+          } 
+        }
+      }
+    }
 }