+ seqCanvas.cursorX = findRes(evt);\r
+ seqCanvas.cursorY = findSeq(evt);\r
+ seqCanvas.repaint();\r
+ return;\r
+ }\r
+\r
+ if (stretchGroup == null)\r
+ {\r
+ //Only if left mouse button do we want to change group sizes\r
+\r
+ // define a new group here\r
+ SequenceGroup sg = new SequenceGroup();\r
+ sg.setStartRes(res);\r
+ sg.setEndRes(res);\r
+ sg.addSequence(sequence, false);\r
+ av.setSelectionGroup(sg);\r
+ stretchGroup = sg;\r
+\r
+ if (av.getConservationSelected())\r
+ {\r
+ SliderPanel.setConservationSlider(ap,\r
+ av.getGlobalColourScheme(),\r
+ "Background");\r
+ }\r
+\r
+ if (av.getAbovePIDThreshold())\r
+ {\r
+ SliderPanel.setPIDSliderSource(ap, av.getGlobalColourScheme(),\r
+ "Background");\r
+ }\r
+ if ( (stretchGroup != null) && (stretchGroup.getEndRes() == res))\r
+ {\r
+ // Edit end res position of selected group\r
+ changeEndRes = true;\r
+ }\r
+ else if ( (stretchGroup != null) &&\r
+ (stretchGroup.getStartRes() == res))\r
+ {\r
+ // Edit end res position of selected group\r
+ changeStartRes = true;\r
+ }\r
+ stretchGroup.getWidth();\r
+ }\r
+\r
+ seqCanvas.repaint();\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param evt DOCUMENT ME!\r
+ */\r
+ public void doMouseReleasedDefineMode(MouseEvent evt)\r
+ {\r
+ if (stretchGroup == null)\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (stretchGroup.cs != null)\r
+ {\r
+ if (stretchGroup.cs instanceof ClustalxColourScheme)\r
+ {\r
+ ( (ClustalxColourScheme) stretchGroup.cs).resetClustalX(\r
+ stretchGroup.getSequences(av.hiddenRepSequences),\r
+ stretchGroup.getWidth());\r
+ }\r
+\r
+ if (stretchGroup.cs instanceof Blosum62ColourScheme\r
+ || stretchGroup.cs instanceof PIDColourScheme\r
+ || stretchGroup.cs.conservationApplied()\r
+ || stretchGroup.cs.getThreshold() > 0)\r
+ {\r
+ stretchGroup.recalcConservation();\r
+ }\r
+\r
+ if (stretchGroup.cs.conservationApplied())\r
+ {\r
+ SliderPanel.setConservationSlider(ap, stretchGroup.cs,\r
+ stretchGroup.getName());\r
+ }\r
+ else\r
+ {\r
+ SliderPanel.setPIDSliderSource(ap, stretchGroup.cs,\r
+ stretchGroup.getName());\r
+ }\r
+ }\r
+ changeEndRes = false;\r
+ changeStartRes = false;\r
+ stretchGroup = null;\r
+\r
+ PaintRefresher.Refresh(this, av.getSequenceSetId());\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param evt DOCUMENT ME!\r
+ */\r
+ public void doMouseDraggedDefineMode(MouseEvent evt)\r
+ {\r
+ int res = findRes(evt);\r
+ int y = findSeq(evt);\r
+\r
+ if (wrappedBlock != startWrapBlock)\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (stretchGroup == null)\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (res >= av.alignment.getWidth())\r
+ {\r
+ res = av.alignment.getWidth() - 1;\r
+ }\r
+\r
+ if (stretchGroup.getEndRes() == res)\r
+ {\r
+ // Edit end res position of selected group\r
+ changeEndRes = true;\r
+ }\r
+ else if (stretchGroup.getStartRes() == res)\r
+ {\r
+ // Edit start res position of selected group\r
+ changeStartRes = true;\r
+ }\r
+\r
+ if (res < av.getStartRes())\r
+ {\r
+ res = av.getStartRes();\r
+ }\r
+\r
+ if (changeEndRes)\r
+ {\r
+ if (res > (stretchGroup.getStartRes() - 1))\r
+ {\r
+ stretchGroup.setEndRes(res);\r
+ }\r
+ }\r
+ else if (changeStartRes)\r
+ {\r
+ if (res < (stretchGroup.getEndRes() + 1))\r
+ {\r
+ stretchGroup.setStartRes(res);\r
+ }\r
+ }\r
+\r
+ int dragDirection = 0;\r