\r
void insertGapAtCursor(boolean group)\r
{\r
- ap.alignFrame.addHistoryItem(new HistoryItem("Edit Sequence",\r
- av.alignment, HistoryItem.EDIT));\r
groupEditing = group;\r
startseq = seqCanvas.cursorY;\r
lastres = seqCanvas.cursorX;\r
\r
void deleteGapAtCursor(boolean group)\r
{\r
- ap.alignFrame.addHistoryItem(new HistoryItem("Edit Sequence",\r
- av.alignment, HistoryItem.EDIT));\r
groupEditing = group;\r
startseq = seqCanvas.cursorY;\r
lastres = seqCanvas.cursorX+getKeyboardNo(keyboardNo1);\r
if(seq<0 || res<0)\r
return;\r
\r
- ap.alignFrame.addHistoryItem(new HistoryItem("Edit Sequence",\r
- av.alignment, HistoryItem.EDIT));\r
\r
if ((seq < av.getAlignment().getHeight()) &&\r
(res < av.getAlignment().getSequenceAt(seq).getLength()))\r
\r
public void doMousePressed(MouseEvent evt)\r
{\r
- ap.alignFrame.addHistoryItem(new HistoryItem(\r
- "Edit Sequence", av.alignment, HistoryItem.EDIT));\r
\r
int seq = findSeq(evt);\r
int res = findRes(evt);\r
}\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
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
/// 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
}\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
{\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
{\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
y = av.alignment.getHeight() -1;\r
}\r
\r
- if(res>av.alignment.getWidth())\r
+ if(res>=av.alignment.getWidth())\r
res = av.alignment.getWidth()-1;\r
\r
if (stretchGroup.getEndRes() == res)\r