Only getGroups once if groupEditingcvs update
[jalview.git] / src / jalview / gui / SeqPanel.java
index 4b7a388..5782797 100755 (executable)
@@ -835,6 +835,12 @@ public class SeqPanel extends JPanel implements MouseListener,
 \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
@@ -858,13 +864,13 @@ public class SeqPanel extends JPanel implements MouseListener,
                  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
@@ -913,19 +919,17 @@ public class SeqPanel extends JPanel implements MouseListener,
             /// 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
@@ -936,10 +940,8 @@ public class SeqPanel extends JPanel implements MouseListener,
           }\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
@@ -947,10 +949,10 @@ public class SeqPanel extends JPanel implements MouseListener,
               {\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
@@ -960,11 +962,11 @@ public class SeqPanel extends JPanel implements MouseListener,
               {\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