From 9ca1d7a3776d77e402c3899184ae041d56f72ca6 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Tue, 10 Oct 2006 11:15:58 +0000 Subject: [PATCH] Only getGroups once if groupEditingcvs update --- src/jalview/appletgui/SeqPanel.java | 36 ++++++++++++++++++----------------- src/jalview/gui/SeqPanel.java | 32 ++++++++++++++++--------------- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index 97f3703..7e5a207 100755 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -814,8 +814,15 @@ public class SeqPanel } + if (groupEditing) { + Vector vseqs = sg.getSequences(true); + int g, groupSize = vseqs.size(); + SequenceI[] groupSeqs = new SequenceI[groupSize]; + for (g = 0; g < groupSeqs.length; g++) + groupSeqs[g] = (SequenceI) vseqs.elementAt(g); + // drag to right if (insertGap) { @@ -839,13 +846,13 @@ public class SeqPanel fixedRight--) { blank = true; - for (int s = 0; s < sg.getSize(true); s++) + + for (g = 0; g < groupSize; g++) { - seq = (SequenceI)sg.getSequences(true).elementAt(s); for (int j = 0; j < startres - lastres; j++) { if (!jalview.util.Comparison.isGap( - seq.getCharAt(fixedRight - j))) + groupSeqs[g].getCharAt(fixedRight - j))) { blank = false; break; @@ -894,19 +901,17 @@ public class SeqPanel /// Are we able to delete? // ie are all columns blank? - for (int s = 0; s < sg.getSize(true); s++) + for (g = 0; g < groupSize; g++) { - seq = (SequenceI)sg.getSequences(true).elementAt(s); - for (int j = startres; j < lastres; j++) { - if (seq.getSequence().length() <= j) + if (groupSeqs[g].getLength() <= j) { continue; } if (!jalview.util.Comparison.isGap( - seq.getSequence().charAt(j))) + groupSeqs[g].getCharAt(j))) { // Not a gap, block edit not valid endEditing(); @@ -917,10 +922,8 @@ public class SeqPanel } - for (int i = 0; i < sg.getSize(true); i++) + for (g = 0; g < groupSize; g++) { - seq = (SequenceI) sg.getSequences(true).elementAt(i); - if (insertGap) { // dragging to the right @@ -928,10 +931,10 @@ public class SeqPanel { if (fixedColumns && fixedRight != -1) { - insertChar(j, seq, fixedRight); + insertChar(j, groupSeqs[g], fixedRight); } else - insertChar(j, seq); + insertChar(j, groupSeqs[g]); } } else @@ -941,17 +944,16 @@ public class SeqPanel { if (fixedColumns && fixedRight != -1) { - deleteChar(startres, seq, fixedRight); + deleteChar(startres, groupSeqs[g], fixedRight); } else { - deleteChar(startres, seq); + deleteChar(startres, groupSeqs[g]); } } } } - } - else /////Editing a single sequence/////////// + } else /////Editing a single sequence/////////// { if (insertGap) { diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 4b7a388..5782797 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -835,6 +835,12 @@ public class SeqPanel extends JPanel implements MouseListener, if (groupEditing) { + Vector vseqs = sg.getSequences(true); + int g, groupSize = vseqs.size(); + SequenceI[] groupSeqs = new SequenceI[groupSize]; + for (g = 0; g < groupSeqs.length; g++) + groupSeqs[g] = (SequenceI) vseqs.elementAt(g); + // drag to right if (insertGap) { @@ -858,13 +864,13 @@ public class SeqPanel extends JPanel implements MouseListener, fixedRight--) { blank = true; - for (int s = 0; s < sg.getSize(true); s++) + + for (g = 0; g < groupSize; g++) { - seq = (SequenceI)sg.getSequences(true).elementAt(s); for (int j = 0; j < startres - lastres; j++) { if (!jalview.util.Comparison.isGap( - seq.getCharAt(fixedRight - j))) + groupSeqs[g].getCharAt(fixedRight - j))) { blank = false; break; @@ -913,19 +919,17 @@ public class SeqPanel extends JPanel implements MouseListener, /// Are we able to delete? // ie are all columns blank? - for (int s = 0; s < sg.getSize(true); s++) + for (g = 0; g < groupSize; g++) { - seq = (SequenceI)sg.getSequences(true).elementAt(s); - for (int j = startres; j < lastres; j++) { - if (seq.getSequence().length() <= j) + if (groupSeqs[g].getLength() <= j) { continue; } if (!jalview.util.Comparison.isGap( - seq.getSequence().charAt(j))) + groupSeqs[g].getCharAt(j))) { // Not a gap, block edit not valid endEditing(); @@ -936,10 +940,8 @@ public class SeqPanel extends JPanel implements MouseListener, } - for (int i = 0; i < sg.getSize(true); i++) + for (g = 0; g < groupSize; g++) { - seq = (SequenceI) sg.getSequences(true).elementAt(i); - if (insertGap) { // dragging to the right @@ -947,10 +949,10 @@ public class SeqPanel extends JPanel implements MouseListener, { if (fixedColumns && fixedRight != -1) { - insertChar(j, seq, fixedRight); + insertChar(j, groupSeqs[g], fixedRight); } else - insertChar(j, seq); + insertChar(j, groupSeqs[g]); } } else @@ -960,11 +962,11 @@ public class SeqPanel extends JPanel implements MouseListener, { if (fixedColumns && fixedRight != -1) { - deleteChar(startres, seq, fixedRight); + deleteChar(startres, groupSeqs[g], fixedRight); } else { - deleteChar(startres, seq); + deleteChar(startres, groupSeqs[g]); } } } -- 1.7.10.2