{\r
Vector tmp = new Vector();\r
SequenceFeature[] features = sequence.getSequenceFeatures();\r
-\r
if (features != null)\r
{\r
for (int i = 0; i < features.length; i++)\r
|| !av.featuresDisplayed.containsKey(features[i].getType()))\r
continue;\r
\r
- if ( (features[i].getBegin() <= sequence.findPosition(res)) &&\r
- (features[i].getEnd() >= sequence.findPosition(res)))\r
+ if ( (features[i].getBegin() <= res) &&\r
+ (features[i].getEnd() >= res))\r
{\r
tmp.addElement(features[i]);\r
}\r
{\r
seqCanvas.cursorX += dx;\r
seqCanvas.cursorY += dy;\r
+ if (av.hasHiddenColumns && !av.colSel.isVisible(seqCanvas.cursorX))\r
+ {\r
+ int original = seqCanvas.cursorX - dx;\r
+ int maxWidth = av.alignment.getWidth();\r
+\r
+ while(!av.colSel.isVisible(seqCanvas.cursorX)\r
+ && seqCanvas.cursorX<maxWidth\r
+ && seqCanvas.cursorX>0)\r
+ {\r
+ seqCanvas.cursorX += dx;\r
+ }\r
+\r
+ if(seqCanvas.cursorX>=maxWidth\r
+ || !av.colSel.isVisible(seqCanvas.cursorX) )\r
+ {\r
+ seqCanvas.cursorX = original;\r
+ }\r
+ }\r
+\r
scrollToVisible();\r
}\r
\r
}\r
if (!av.wrapAlignment)\r
{\r
- while (seqCanvas.cursorX < av.startRes)\r
+ while (seqCanvas.cursorX < av.colSel.adjustForHiddenColumns(av.startRes))\r
{\r
if (!ap.scrollRight(false))\r
break;\r
}\r
- while (seqCanvas.cursorX > av.endRes)\r
+ while (seqCanvas.cursorX > av.colSel.adjustForHiddenColumns(av.endRes))\r
{\r
if (!ap.scrollRight(true))\r
break;\r
tooltipText.setLength(6); // Cuts the buffer back to <html>\r
\r
SequenceFeature[] features = findFeaturesAtRes(\r
- sequence.getDatasetSequence(), res);\r
+ sequence.getDatasetSequence(), sequence.findPosition(res));\r
\r
if(features!=null)\r
{\r
}\r
}\r
\r
-\r
if(tooltipText.length()==6) // <html></html>\r
{\r
-\r
- setToolTipText("");\r
+ setToolTipText(null);\r
}\r
else\r
{\r
}\r
}\r
else\r
- setToolTipText("");\r
+ setToolTipText(null);\r
}\r
}\r
\r
\r
public void mouseClicked(MouseEvent evt)\r
{\r
+ SequenceI sequence = av.alignment.getSequenceAt( findSeq(evt) );\r
if(evt.getClickCount()>1)\r
{\r
+ if (av.getSelectionGroup().getSize(false) == 1\r
+ && av.getSelectionGroup().getEndRes()\r
+ - av.getSelectionGroup().getStartRes() < 2)\r
+ av.setSelectionGroup(null);\r
\r
SequenceFeature[] features = findFeaturesAtRes(\r
- av.alignment.getSequenceAt( findSeq(evt) ).getDatasetSequence(),\r
- findRes(evt)\r
+ sequence.getDatasetSequence(),\r
+ sequence.findPosition( findRes(evt) )\r
);\r
- for(int f=0; f<features.length; f++)\r
- System.out.println("SELECT: "+features[f].getType()+" "\r
- +features[f].getBegin()+" "+features[f].getEnd());\r
\r
+ if(features!=null && features.length>0)\r
+ {\r
+ SearchResults highlight = new SearchResults();\r
+ highlight.addResult(sequence,\r
+ features[0].getBegin(),\r
+ features[0].getEnd());\r
+ seqCanvas.highlightSearchResults(highlight);\r
+ }\r
+ if(features!=null && features.length>0)\r
+ {\r
+ seqCanvas.getFeatureRenderer().amendFeatures(\r
+ new SequenceI[]\r
+ {sequence}, features, false, ap);\r
+\r
+ seqCanvas.highlightSearchResults(null);\r
+ }\r
}\r
}\r
\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
+ stretchGroup.recalcConservation();\r
+\r
if (stretchGroup.cs.conservationApplied())\r
{\r
SliderPanel.setConservationSlider(ap, stretchGroup.cs,\r
stretchGroup.getName());\r
- stretchGroup.recalcConservation();\r
}\r
else\r
{\r
return;\r
}\r
\r
- if(res> av.alignment.getWidth())\r
+ if(res>= av.alignment.getWidth())\r
{\r
res = av.alignment.getWidth()-1;\r
}\r