image is panel size
[jalview.git] / src / jalview / appletgui / AlignViewport.java
index 40d67b0..7fc240f 100755 (executable)
@@ -111,6 +111,8 @@ public class AlignViewport
 \r
   String sequenceSetID;\r
 \r
+  Hashtable hiddenRepSequences;\r
+\r
   public AlignViewport(AlignmentI al, JalviewLite applet)\r
   {\r
     this.applet = applet;\r
@@ -202,6 +204,8 @@ public class AlignViewport
               11f,\r
               AlignmentAnnotation.BAR_GRAPH);\r
           conservation.hasText = true;\r
+          conservation.autoCalculated = true;\r
+\r
 \r
 \r
           if (showConservation)\r
@@ -218,6 +222,7 @@ public class AlignViewport
                                               11f,\r
                                               AlignmentAnnotation.BAR_GRAPH);\r
             quality.hasText = true;\r
+            quality.autoCalculated = true;\r
 \r
             alignment.addAnnotation(quality);\r
           }\r
@@ -227,6 +232,7 @@ public class AlignViewport
                                              new Annotation[1], 0f, 100f,\r
                                              AlignmentAnnotation.BAR_GRAPH);\r
         consensus.hasText = true;\r
+        consensus.autoCalculated = true;\r
 \r
          if (showConsensus)\r
          {\r
@@ -296,7 +302,7 @@ public class AlignViewport
           cons.findQuality();\r
         }\r
 \r
-        String sequence = cons.getConsSequence().getSequence();\r
+        char [] sequence = cons.getConsSequence().getSequence();\r
         float minR;\r
         float minG;\r
         float minB;\r
@@ -331,7 +337,7 @@ public class AlignViewport
         {\r
           float value = 0;\r
 \r
-          c = sequence.charAt(i);\r
+          c = sequence[i];\r
 \r
           if (Character.isDigit(c))\r
             value = (int) (c - '0');\r
@@ -951,6 +957,33 @@ public class AlignViewport
     hasHiddenColumns = true;\r
   }\r
 \r
+  public void hideRepSequences(SequenceI repSequence, SequenceGroup sg)\r
+  {\r
+    int sSize = sg.getSize();\r
+    if(sSize < 2)\r
+      return;\r
+\r
+    if(hiddenRepSequences==null)\r
+      hiddenRepSequences = new Hashtable();\r
+\r
+     hiddenRepSequences.put(repSequence, sg);\r
+\r
+    //Hide all sequences except the repSequence\r
+    SequenceI [] seqs = new SequenceI[sSize-1];\r
+    int index = 0;\r
+    for(int i=0; i<sSize; i++)\r
+      if(sg.getSequenceAt(i)!=repSequence)\r
+      {\r
+        if(index==sSize-1)\r
+          return;\r
+\r
+        seqs[index++] = sg.getSequenceAt(i);\r
+      }\r
+\r
+    hideSequence(seqs);\r
+\r
+    }\r
+\r
   public void hideAllSelectedSeqs()\r
   {\r
     if (selectionGroup == null)\r
@@ -997,7 +1030,7 @@ public class AlignViewport
         selectionGroup = new SequenceGroup();\r
         selectionGroup.setEndRes(alignment.getWidth()-1);\r
       }\r
-      Vector tmp = alignment.getHiddenSequences().showAll();\r
+      Vector tmp = alignment.getHiddenSequences().showAll(hiddenRepSequences);\r
       for(int t=0; t<tmp.size(); t++)\r
       {\r
         selectionGroup.addSequence(\r
@@ -1006,7 +1039,8 @@ public class AlignViewport
       }\r
       firePropertyChange("alignment", null, alignment.getSequences());\r
       hasHiddenRows = false;\r
-    }\r
+      hiddenRepSequences = null;\r
+      }\r
   }\r
 \r
   public int adjustForHiddenSeqs(int alignmentIndex)\r
@@ -1047,7 +1081,7 @@ public class AlignViewport
     int start = 0, end = 0;\r
     if(selectedRegionOnly && selectionGroup!=null)\r
     {\r
-      iSize = selectionGroup.getSize(false);\r
+      iSize = selectionGroup.getSize();\r
       seqs = selectionGroup.getSequencesInOrder(alignment);\r
       start = selectionGroup.getStartRes();\r
       end = selectionGroup.getEndRes(); // inclusive for start and end in SeqCigar constructor\r
@@ -1142,7 +1176,7 @@ public class AlignViewport
     int start = 0, end = 0;\r
     if(selectedRegionOnly && selectionGroup!=null)\r
     {\r
-      iSize = selectionGroup.getSize(false);\r
+      iSize = selectionGroup.getSize();\r
       seqs = selectionGroup.getSequencesInOrder(alignment);\r
       start = selectionGroup.getStartRes();\r
       end = selectionGroup.getEndRes()+1;\r
@@ -1201,7 +1235,7 @@ public class AlignViewport
       }\r
       else\r
       {\r
-        selection[i] = seqs[i].getSequence(start, end);\r
+        selection[i] = seqs[i].getSequenceAsString(start, end);\r
       }\r
     }\r
 \r
@@ -1273,7 +1307,7 @@ public class AlignViewport
 \r
     resetAllColourSchemes();\r
 \r
-    alignment.adjustSequenceAnnotations();\r
+  //AW  alignment.adjustSequenceAnnotations();\r
   }\r
 \r
   void resetAllColourSchemes()\r
@@ -1310,7 +1344,7 @@ public class AlignViewport
       if(sg.cs!=null && sg.cs instanceof ClustalxColourScheme)\r
       {\r
         ((ClustalxColourScheme)sg.cs).resetClustalX(\r
-            sg.getSequences(true), sg.getWidth());\r
+            sg.getSequences(hiddenRepSequences), sg.getWidth());\r
       }\r
       sg.recalcConservation();\r
     }\r