- while (y != oldSeq && oldSeq > 0 && y < av.alignment.getHeight())\r
- {\r
- // This routine ensures we don't skip any sequences, as the\r
- // selection is quite slow.\r
- Sequence seq = (Sequence) av.getAlignment().getSequenceAt(oldSeq);\r
+ if (y > oldSeq)\r
+ {\r
+ dragDirection = 1;\r
+ }\r
+ else if (y < oldSeq)\r
+ {\r
+ dragDirection = -1;\r
+ }\r
+\r
+\r
+ while ((y != oldSeq) && (oldSeq > -1) && (y < av.alignment.getHeight()))\r
+ {\r
+ // This routine ensures we don't skip any sequences, as the\r
+ // selection is quite slow.\r
+ Sequence seq = (Sequence) av.getAlignment().getSequenceAt(oldSeq);\r
+\r
+ oldSeq += dragDirection;\r
+\r
+ if(oldSeq<0)\r
+ break;\r
+\r
+ Sequence nextSeq = (Sequence) av.getAlignment().getSequenceAt(oldSeq);\r
+\r
+ if (stretchGroup.sequences.contains(nextSeq))\r
+ {\r
+ stretchGroup.deleteSequence(seq, false);\r
+ }\r
+ else\r
+ {\r
+ if (seq != null)\r
+ {\r
+ stretchGroup.addSequence(seq, false);\r
+ }\r
+\r
+ stretchGroup.addSequence(nextSeq, false);\r
+ }\r
+ }\r