Annotation adjustment moved to EditCommand
[jalview.git] / src / jalview / commands / RemoveGapsCommand.java
index 9343ec2..f6413a7 100644 (file)
@@ -23,7 +23,7 @@ import jalview.datamodel.*;
 public class RemoveGapsCommand  extends EditCommand\r
 {\r
   public RemoveGapsCommand(  String description,\r
-                             SequenceI[] seqs, char gapChar)\r
+                             SequenceI[] seqs, AlignmentI al)\r
   {\r
     this.description = description;\r
     int width = 0;\r
@@ -31,56 +31,63 @@ public class RemoveGapsCommand  extends EditCommand
       if(seqs[i].getLength()>width)\r
         width = seqs[i].getLength();\r
 \r
-    findGaps(seqs, 0, width, gapChar);\r
+    findGaps(seqs, 0, width, al);\r
   }\r
 \r
   public RemoveGapsCommand(  String description,\r
                              SequenceI[] seqs,\r
-                             int start, int end, char gapChar)\r
+                             int start, int end, AlignmentI al)\r
   {\r
     this.description = description;\r
-    findGaps(seqs, start, end, gapChar);\r
+    findGaps(seqs, start, end, al);\r
   }\r
 \r
-  void findGaps(SequenceI [] seqs, int start, int end, char gapChar)\r
+  void findGaps(SequenceI [] seqs, int start, int end, AlignmentI al)\r
   {\r
 \r
     int startCol = -1, endCol = -1;\r
     int deletedCols = 0;\r
 \r
+    int j, jSize;\r
+\r
     edits = new Edit[0];\r
 \r
     boolean delete = true;\r
     char [] sequence;\r
+\r
     for(int s=0; s<seqs.length; s++)\r
     {\r
       deletedCols = 0;\r
       startCol = -1;\r
       endCol = -1;\r
-      sequence = seqs[s].getSequence().toCharArray();\r
-      for (int i = start; i < end; i++)\r
+      sequence = seqs[s].getSequence(start, end+1);\r
+\r
+      jSize = sequence.length;\r
+      for (j=0; j<jSize; j++)\r
       {\r
         delete = true;\r
 \r
-        if (!jalview.util.Comparison.isGap(sequence[i]))\r
+\r
+        if (!jalview.util.Comparison.isGap(sequence[j]))\r
         {\r
           if (delete)\r
-            endCol = i;\r
+            endCol = j;\r
 \r
           delete = false;\r
         }\r
 \r
+\r
         if (delete && startCol == -1)\r
         {\r
-          startCol = i;\r
+          startCol = j;\r
         }\r
 \r
         if (!delete && startCol > -1)\r
         {\r
           this.appendEdit(DELETE_GAP, new SequenceI[]{seqs[s]},\r
-                          startCol - deletedCols,\r
+                          start + startCol - deletedCols,\r
                           endCol - startCol,\r
-                          gapChar,\r
+                          al,\r
                           false);\r
 \r
           deletedCols += (endCol - startCol);\r
@@ -90,16 +97,10 @@ public class RemoveGapsCommand  extends EditCommand
       }\r
       if (delete && startCol > -1)\r
       {\r
-        int width = end - endCol;\r
-\r
-        if (endCol == -1)\r
-          width = end - start + 1;\r
-\r
-        //This is the end of the region.\r
         this.appendEdit(DELETE_GAP, new SequenceI[]{seqs[s]},\r
-                        startCol - deletedCols,\r
-                        width,\r
-                        gapChar,\r
+                        start + startCol - deletedCols,\r
+                        jSize - startCol,\r
+                        al,\r
                         false);\r
       }\r
 \r