- 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
-\r
- if (!groupEditing && av.hasHiddenRows)\r
- {\r
- if (av.alignment.getSequenceAt(startseq).getHiddenSequences() != null)\r
- {\r
- groupEditing = true;\r
- }\r
- }\r
-\r
- //No group, but the sequence may represent a group\r
- if (groupEditing\r
- && sg == null\r
- && av.alignment.getSequenceAt(startseq).getHiddenSequences() == null)\r
- {\r
- groupEditing = false;\r
- }\r
-\r
- SequenceI seq = av.alignment.getSequenceAt(startseq);\r
- StringBuffer message = new StringBuffer();\r
- if (groupEditing)\r
- {\r
- message.append("Edit group:");\r
- if (editCommand == null)\r
- editCommand = new EditCommand("Edit Group");\r
- }\r
- else\r
- {\r
- message.append("Edit sequence: " + seq.getName());\r
- String label = seq.getName();\r
- if(label.length()>10)\r
- label = label.substring(0,10);\r
- if(editCommand==null)\r
- editCommand = new EditCommand("Edit "+label);\r
- }\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.getSequences(true).contains(seq)))\r
- {\r
- fixedColumns = true;\r
-\r
- //sg might be null as the user may only see 1 sequence,\r
- //but the sequence represents a group\r
- if (sg == null)\r
- {\r
- sg = new SequenceGroup(null, null, false, false, false, 0,\r
- av.alignment.getWidth()-1);\r
- sg.addSequence(av.alignment.getSequenceAt(startseq), false);\r
- }\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