+ max ++;\r
+\r
+ if(topLeft)\r
+ {\r
+ sg.setStartRes(seqCanvas.cursorX);\r
+ if(sg.getEndRes()<seqCanvas.cursorX)\r
+ sg.setEndRes(seqCanvas.cursorX);\r
+\r
+ min = seqCanvas.cursorY;\r
+ }\r
+ else\r
+ {\r
+ sg.setEndRes(seqCanvas.cursorX);\r
+ if(sg.getStartRes()>seqCanvas.cursorX)\r
+ sg.setStartRes(seqCanvas.cursorX);\r
+\r
+ max = seqCanvas.cursorY+1;\r
+ }\r
+\r
+ if(min>max)\r
+ {\r
+ // Only the user can do this\r
+ av.setSelectionGroup(null);\r
+ }\r
+ else\r
+ {\r
+ // Now add any sequences between min and max\r
+ sg.getSequences(false).clear();\r
+ for (int i = min; i < max; i++)\r
+ {\r
+ sg.addSequence(av.alignment.getSequenceAt(i), false);\r
+ }\r
+ }\r
+ }\r
+\r
+ if (av.getSelectionGroup() == null)\r
+ {\r
+ SequenceGroup sg = new SequenceGroup();\r
+ sg.setStartRes(seqCanvas.cursorX);\r
+ sg.setEndRes(seqCanvas.cursorX);\r
+ sg.addSequence(sequence, false);\r
+ av.setSelectionGroup(sg);\r
+ }\r
+\r
+\r
+ ap.repaint();\r
+ }\r
+\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
+ editSequence(true, seqCanvas.cursorX+getKeyboardNo(keyboardNo1));\r
+ editOccurred();\r
+ }\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
+ editSequence(false, seqCanvas.cursorX);\r
+ editOccurred();\r
+ }\r
+\r
+ void numberPressed(char value)\r
+ {\r
+ if(keyboardNo1==null)\r
+ keyboardNo1 = new StringBuffer();\r
+\r
+ if(keyboardNo2!=null)\r
+ keyboardNo2.append(value);\r
+ else\r
+ keyboardNo1.append(value);\r