Only getGroups once if groupEditingcvs update
[jalview.git] / src / jalview / appletgui / SeqPanel.java
index 97f3703..7e5a207 100755 (executable)
@@ -814,8 +814,15 @@ public class SeqPanel
       }\r
 \r
 \r
+\r
       if (groupEditing)\r
       {\r
+        Vector vseqs = sg.getSequences(true);\r
+        int g, groupSize = vseqs.size();\r
+        SequenceI[] groupSeqs = new SequenceI[groupSize];\r
+        for (g = 0; g < groupSeqs.length; g++)\r
+          groupSeqs[g] = (SequenceI) vseqs.elementAt(g);\r
+\r
         // drag to right\r
         if (insertGap)\r
         {\r
@@ -839,13 +846,13 @@ public class SeqPanel
                fixedRight--)\r
           {\r
             blank = true;\r
-            for (int s = 0; s < sg.getSize(true); s++)\r
+\r
+            for (g = 0; g < groupSize; g++)\r
             {\r
-              seq = (SequenceI)sg.getSequences(true).elementAt(s);\r
               for (int j = 0; j < startres - lastres; j++)\r
               {\r
                 if (!jalview.util.Comparison.isGap(\r
-                    seq.getCharAt(fixedRight - j)))\r
+                    groupSeqs[g].getCharAt(fixedRight - j)))\r
                 {\r
                   blank = false;\r
                   break;\r
@@ -894,19 +901,17 @@ public class SeqPanel
           /// Are we able to delete?\r
           // ie are all columns blank?\r
 \r
-          for (int s = 0; s < sg.getSize(true); s++)\r
+          for (g = 0; g < groupSize; g++)\r
           {\r
-            seq = (SequenceI)sg.getSequences(true).elementAt(s);\r
-\r
             for (int j = startres; j < lastres; j++)\r
             {\r
-              if (seq.getSequence().length() <= j)\r
+              if (groupSeqs[g].getLength() <= j)\r
               {\r
                 continue;\r
               }\r
 \r
               if (!jalview.util.Comparison.isGap(\r
-                  seq.getSequence().charAt(j)))\r
+                  groupSeqs[g].getCharAt(j)))\r
               {\r
                 // Not a gap, block edit not valid\r
                 endEditing();\r
@@ -917,10 +922,8 @@ public class SeqPanel
         }\r
 \r
 \r
-        for (int i = 0; i < sg.getSize(true); i++)\r
+        for (g = 0; g < groupSize; g++)\r
         {\r
-          seq = (SequenceI) sg.getSequences(true).elementAt(i);\r
-\r
           if (insertGap)\r
           {\r
             // dragging to the right\r
@@ -928,10 +931,10 @@ public class SeqPanel
             {\r
               if (fixedColumns && fixedRight != -1)\r
               {\r
-                insertChar(j, seq, fixedRight);\r
+                insertChar(j, groupSeqs[g], fixedRight);\r
               }\r
               else\r
-                insertChar(j, seq);\r
+                insertChar(j, groupSeqs[g]);\r
             }\r
           }\r
           else\r
@@ -941,17 +944,16 @@ public class SeqPanel
             {\r
               if (fixedColumns && fixedRight != -1)\r
               {\r
-                deleteChar(startres, seq, fixedRight);\r
+                deleteChar(startres, groupSeqs[g], fixedRight);\r
               }\r
               else\r
               {\r
-                deleteChar(startres, seq);\r
+                deleteChar(startres, groupSeqs[g]);\r
               }\r
             }\r
           }\r
         }\r
-      }\r
-      else /////Editing a single sequence///////////\r
+      }      else /////Editing a single sequence///////////\r
       {\r
         if (insertGap)\r
         {\r