Only getGroups once if groupEditingcvs update
authoramwaterhouse <Andrew Waterhouse>
Tue, 10 Oct 2006 11:15:58 +0000 (11:15 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 10 Oct 2006 11:15:58 +0000 (11:15 +0000)
src/jalview/appletgui/SeqPanel.java
src/jalview/gui/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
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