Remove all gaps must check jSize
authoramwaterhouse <Andrew Waterhouse>
Thu, 7 Jul 2005 10:14:03 +0000 (10:14 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 7 Jul 2005 10:14:03 +0000 (10:14 +0000)
src/jalview/appletgui/AlignFrame.java
src/jalview/gui/AlignFrame.java

index aeee116..3ab3132 100755 (executable)
@@ -397,13 +397,26 @@ public class AlignFrame
       return;\r
     }\r
 \r
+\r
     SequenceGroup sg = viewport.getSelectionGroup();\r
+    boolean allSequences = false;\r
+    if(sg.sequences.size()==viewport.alignment.getHeight())\r
+          allSequences = true;\r
+\r
     for (int i = 0; i < sg.sequences.size(); i++)\r
     {\r
       SequenceI seq = sg.getSequenceAt(i);\r
       int index = viewport.getAlignment().findIndex(seq);\r
       seq.deleteChars(sg.getStartRes(), sg.getEndRes() + 1);\r
 \r
+      // If the cut affects all sequences, remove highlighted columns\r
+      if (allSequences)\r
+      {\r
+        viewport.getColumnSelection().removeElements(sg.getStartRes(),\r
+                                                     sg.getEndRes() + 1);\r
+      }\r
+\r
+\r
       if (seq.getSequence().length() < 1)\r
       {\r
         viewport.getAlignment().deleteSequence(seq);\r
@@ -579,7 +592,7 @@ public class AlignFrame
         }\r
         j++;\r
       }\r
-      while(j < end);\r
+      while(j < end && j < jSize) ;\r
     }\r
 \r
     viewport.updateConservation();\r
index d154e2e..2f7e5a8 100755 (executable)
@@ -680,6 +680,9 @@ public class AlignFrame extends GAlignFrame
                 HistoryItem.HIDE));\r
 \r
         SequenceGroup sg = viewport.getSelectionGroup();\r
+        boolean allSequences = false;\r
+        if(sg.sequences.size()==viewport.alignment.getHeight())\r
+          allSequences = true;\r
 \r
         for (int i = 0; i < sg.sequences.size(); i++)\r
         {\r
@@ -687,6 +690,13 @@ public class AlignFrame extends GAlignFrame
             int index = viewport.getAlignment().findIndex(seq);\r
             seq.deleteChars(sg.getStartRes(), sg.getEndRes() + 1);\r
 \r
+            // If the cut affects all sequences, remove highlighted columns\r
+            if(allSequences)\r
+            {\r
+              viewport.getColumnSelection().removeElements(sg.getStartRes(), sg.getEndRes()+1);\r
+            }\r
+\r
+\r
             if (seq.getSequence().length() < 1)\r
             {\r
                 seqsdeleted = true;\r
@@ -936,7 +946,7 @@ public class AlignFrame extends GAlignFrame
 \r
                 j++;\r
             }\r
-            while (j < end);\r
+            while (j < end && j < jSize);\r
         }\r
 \r
         viewport.updateConservation();\r