y %= chunkHeight;\r
seq = y / av.getCharHeight() + av.getStartSeq();\r
\r
- // chunkHeight = (da.getHeight() + 2)*charHeight;\r
- // startx += chunkWidth;\r
}\r
else\r
{\r
// Group editing\r
if (evt.isAltDown() || evt.isControlDown())\r
{\r
- SequenceGroup sg = av.getAlignment().findGroup(startseq);\r
+ SequenceGroup sg = av.getSelectionGroup();\r
+ if(sg==null)\r
+ av.getAlignment().findGroup(startseq);\r
if (sg != null)\r
{\r
boolean deleteAllowed = false;\r
\r
void updateConservation(int i)\r
{\r
- /* Alignment al = (Alignment) av.getAlignment();\r
- SequenceGroup sg = av.alignment.findGroup( al.getSequenceAt(i));\r
- if(sg==null || !(sg.cs instanceof ConservationColourScheme))\r
- return;\r
-\r
- Conservation c = sg.getConservation();\r
-\r
- c = new Conservation("All", al.cons,\r
- ResidueProperties.propHash, 3, sg.sequences, 0,\r
- al.getWidth());\r
- c.calculate();\r
- c.verdict(false, 100);\r
- sg.setConservation(c);\r
- ConservationColourScheme ccs = (ConservationColourScheme)sg.cs;\r
- ccs.conserve = c;*/\r
+ av.updateConservation();\r
+ av.updateConsensus();\r
}\r
\r
//////////////////////////////////////////\r
if(stretchGroup == null)\r
{\r
stretchGroup = av.alignment.findGroup( sequence );\r
- if(res>stretchGroup.getStartRes() && res<stretchGroup.getEndRes())\r
+ if(stretchGroup!=null && res>stretchGroup.getStartRes() && res<stretchGroup.getEndRes())\r
av.setSelectionGroup(stretchGroup);\r
else\r
stretchGroup = null;\r
changeStartRes = true;\r
\r
\r
- seqCanvas.paintFlag = true;\r
repaint();\r
\r
}\r
if(stretchGroup.cs instanceof ClustalxColourScheme)\r
{\r
stretchGroup.cs = new ClustalxColourScheme(stretchGroup.sequences, av.alignment.getWidth());\r
- seqCanvas.paintFlag = true;\r
repaint();\r
}\r
\r
\r
Desktop.setConservationSliderSource(ap, stretchGroup.cs, stretchGroup.getName()) ;\r
\r
- seqCanvas.paintFlag = true;\r
repaint();\r
}\r
else\r
if(stretchGroup==null)\r
return;\r
\r
+ if(res>av.alignment.getWidth()-2)\r
+ res = av.alignment.getWidth()-2;\r
+\r
+\r
if(stretchGroup.getEndRes()==res)\r
// Edit end res position of selected group\r
changeEndRes = true;\r
else if (y < oldSeq)\r
dragDirection = -1;\r
\r
- while (y != oldSeq && oldSeq>0)\r
+ 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
}\r
else\r
{\r
+ if(seq!=null)\r
stretchGroup.addSequence(seq);\r
stretchGroup.addSequence(nextSeq);\r
}\r
if(scrollThread!=null)\r
scrollThread.setEvent(evt);\r
\r
- seqCanvas.paintFlag = true;\r
repaint();\r
}\r
\r
running = ap.scrollRight(false);\r
}\r
\r
- ap.repaint();\r
try\r
{\r
Thread.sleep(75);\r