- doMouseDraggedDefineMode(evt);\r
- return;\r
- }\r
-\r
- int res = findRes(evt);\r
-\r
- if (res < 0)\r
- {\r
- res = 0;\r
- }\r
-\r
- if ((lastres == -1) || (lastres == res))\r
- {\r
- return;\r
- }\r
-\r
- if ( (res < av.getAlignment().getWidth()) && (res < lastres))\r
- {\r
- // dragLeft, delete gap\r
- editSequence(false, res);\r
- }\r
- else\r
- editSequence(true, res);\r
-\r
- mouseDragging = true;\r
- if(scrollThread!=null)\r
- scrollThread.setEvent(evt);\r
-\r
- }\r
-\r
- synchronized void editSequence(boolean insertGap, int startres)\r
- {\r
- int fixedLeft = -1;\r
- int fixedRight = -1;\r
- boolean fixedColumns = false;\r
- SequenceGroup sg = av.getSelectionGroup();\r
-\r
- if(groupEditing && sg==null)\r
- return;\r
-\r
- if (!groupEditing && av.hasHiddenRows)\r
- {\r
- //This needs to check all the sequences in a group edit,m\r
- // not just the startseq\r
- if (av.alignment.getSequenceAt(startseq).getHiddenSequences() != null)\r
- {\r
- groupEditing = true;\r
- }\r
- }\r
-\r
- SequenceI seq = av.alignment.getSequenceAt(startseq);\r
- StringBuffer message = new StringBuffer();\r
- if (groupEditing)\r
- message.append("Edit group:");\r
- else\r
- message.append("Edit sequence: "+seq.getName());\r
-\r
- if(insertGap)\r
- message.append(" insert ");\r
- else\r
- message.append(" delete ");\r
-\r
- message.append(Math.abs(startres-lastres)+" gaps.");\r
- ap.alignFrame.statusBar.setText(message.toString());\r
-\r
-\r
- //Are we editing within a selection group?\r
- if (groupEditing\r
- || (sg != null && sg.sequences.contains(seq)))\r
- {\r
- fixedColumns = true;\r
-\r
- fixedLeft = sg.getStartRes();\r
- fixedRight = sg.getEndRes();\r
-\r
- if ( (startres < fixedLeft && lastres >= fixedLeft)\r
- || (startres >= fixedLeft && lastres < fixedLeft)\r
- || (startres > fixedRight && lastres <=fixedRight)\r
- || (startres <= fixedRight && lastres > fixedRight))\r
- {\r
- endEditing();\r
- return;\r
- }\r
-\r
- if (fixedLeft > startres)\r
- {\r
- fixedRight = fixedLeft - 1;\r
- fixedLeft = 0;\r
- }\r
- else if (fixedRight < startres)\r
- {\r
- fixedLeft = fixedRight;\r
- fixedRight = -1;\r
- }\r
- }\r
-\r
-\r
-\r
- if(av.hasHiddenColumns)\r
- {\r
- fixedColumns = true;\r
- int y1 = av.getColumnSelection().getHiddenBoundaryLeft(startres);\r
- int y2 = av.getColumnSelection().getHiddenBoundaryRight(startres);\r
-\r
- if( ( insertGap && startres>y1 && lastres<y1)\r
- || (!insertGap && startres<y2 && lastres>y2) )\r
- {\r
- endEditing();\r
- return;\r
- }\r
-\r
- if(fixedRight<y2 && fixedRight==-1 && y2!=startres)\r
- fixedRight = y2 -1;\r
- if(y1>fixedLeft && fixedLeft==-1)\r
- fixedLeft = y1;\r
- }\r
-\r
- if (groupEditing)\r