JAL-842; toy example to insert nucleotides in sequences in the
[jalview.git] / src / jalview / commands / EditCommand.java
index 019e11e..03b94d3 100644 (file)
@@ -1,20 +1,19 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
+ * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
  * 
- * This program 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 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
  * 
- * This program 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 PURPOSE.  See the
- * GNU General Public License for more details.
+ * 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.
  * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * 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 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  */
 package jalview.commands;
 
@@ -55,6 +54,8 @@ public class EditCommand implements CommandI
   public static final int PASTE = 3;
 
   public static final int REPLACE = 4;
+  
+  public static final int INSERT_NUC=5;
 
   Edit[] edits;
 
@@ -144,8 +145,8 @@ public class EditCommand implements CommandI
   final public void appendEdit(int command, SequenceI[] seqs, int position,
           int number, AlignmentI al, boolean performEdit, AlignmentI[] views)
   {
-    Edit edit = new Edit(command, seqs, position, number, al
-            .getGapCharacter());
+    Edit edit = new Edit(command, seqs, position, number,
+            al.getGapCharacter());
     if (al.getHeight() == seqs.length)
     {
       edit.al = al;
@@ -193,6 +194,10 @@ public class EditCommand implements CommandI
       case REPLACE:
         replace(edits[e]);
         break;
+        //TODO:add deleteNuc for UNDO
+      case INSERT_NUC:
+       insertNuc(edits[e]);
+       break;
       }
     }
   }
@@ -224,7 +229,7 @@ public class EditCommand implements CommandI
       case REPLACE:
         replace(edits[e]);
         break;
-      }
+       }
     }
   }
 
@@ -235,6 +240,19 @@ public class EditCommand implements CommandI
     {
       command.seqs[s].insertCharAt(command.position, command.number,
               command.gapChar);
+      System.out.println("pos: "+command.position+" number: "+command.number);
+    }
+
+    adjustAnnotations(command, true, false, null);
+  }
+  
+  final void insertNuc(Edit command)
+  {
+
+    for (int s = 0; s < command.seqs.length; s++)
+    {
+        System.out.println("pos: "+command.position+" number: "+command.number);
+       command.seqs[s].insertCharAt(command.position, command.number,'A');
     }
 
     adjustAnnotations(command, true, false, null);
@@ -287,9 +305,12 @@ public class EditCommand implements CommandI
               command.oldds = new SequenceI[command.seqs.length];
             }
             command.oldds[i] = oldds;
-            adjustFeatures(command, i, command.seqs[i]
-                    .findPosition(command.position), command.seqs[i]
-                    .findPosition(command.position + command.number), false);
+            adjustFeatures(
+                    command,
+                    i,
+                    command.seqs[i].findPosition(command.position),
+                    command.seqs[i].findPosition(command.position
+                            + command.number), false);
           }
         }
       }
@@ -782,9 +803,8 @@ public class EditCommand implements CommandI
       if (command.editedFeatures != null
               && command.editedFeatures.containsKey(seq))
       {
-        sequence
-                .setSequenceFeatures((SequenceFeature[]) command.editedFeatures
-                        .get(seq));
+        sequence.setSequenceFeatures((SequenceFeature[]) command.editedFeatures
+                .get(seq));
       }
 
       return;