+ if(res<0 || seq<0 || seq >= av.getAlignment().getHeight())\r
+ return;\r
+\r
+ SequenceI sequence = av.getAlignment().getSequenceAt(seq);\r
+\r
+ if (res > sequence.getLength())\r
+ {\r
+ return;\r
+ }\r
+\r
+ if(seqCanvas.pdbCanvas!=null && sequence==seqCanvas.pdbCanvas.sequence)\r
+ {\r
+ seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res));\r
+ }\r
+\r
+ setStatusMessage(sequence, res, seq);\r
+\r
+ // use aa to see if the mouse pointer is on a\r
+ if (av.showSequenceFeatures)\r
+ {\r
+ SequenceFeature [] features = sequence.getDatasetSequence().getSequenceFeatures();\r
+ if(features!=null)\r
+ {\r
+ StringBuffer sbuffer = new StringBuffer("<html>");\r
+ StringBuffer seqSpecific = new StringBuffer();\r
+\r
+ for (int i = 0; i < features.length; i++)\r
+ {\r
+\r
+ if ( (features[i].getBegin() <= sequence.findPosition(res)) &&\r
+ (features[i].getEnd() >= sequence.findPosition(res)))\r
+ {\r
+ if(av.featuresDisplayed==null\r
+ || !av.featuresDisplayed.containsKey(features[i].getType()))\r
+ continue;\r
+\r
+\r
+ if (features[i].getType().equals("disulfide bond"))\r
+ {\r
+ if (features[i].getBegin() == sequence.findPosition(res)\r
+ || features[i].getEnd() == sequence.findPosition(res))\r
+ {\r
+ if (sbuffer.length() > 6)\r
+ sbuffer.append("<br>");\r
+ sbuffer.append("disulfide bond " + features[i].getBegin() + ":" +\r
+ features[i].getEnd());\r
+ if (features[i].links != null)\r
+ sbuffer.append(" <img src=\"" + linkImageURL + "\">");\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if (sbuffer.length() > 6)\r
+ sbuffer.append("<br>");\r
+\r
+ sbuffer.append(features[i].getType() + " " +\r
+ features[i].begin);\r
+ if (features[i].begin != features[i].end)\r
+ sbuffer.append(" " + features[i].end);\r
+\r
+ if (features[i].getDescription() != null\r
+ && !features[i].description.equals(features[i].getType()))\r
+ sbuffer.append("; " + features[i].getDescription());\r
+\r
+ if (features[i].getValue("status") != null)\r
+ {\r
+ sbuffer.append("; (" + features[i].getValue("status") + ")");\r
+ }\r
+ if (features[i].links != null)\r
+ sbuffer.append(" <img src=\"" + linkImageURL + "\">");\r
+\r
+ }\r
+ }\r
+ else if(features[i].begin==0 && features[i].end==0)\r
+ {\r
+ // seqSpecific.append(features[i].featureGroup+": "\r
+ // + features[i].getType()+" "\r
+ // +features[i].getDescription()+"<br>");\r
+\r
+ }\r
+ }\r
+\r
+ if(seqSpecific.length()>0)\r
+ seqSpecific.setLength(seqSpecific.length()-4);\r
+\r
+ sbuffer.append(seqSpecific);\r
+ sbuffer.append("</html>");\r
+ if(sbuffer.length()==13) // <html></html>\r
+ setToolTipText("");\r
+ else\r
+ setToolTipText(sbuffer.toString());\r
+ }\r
+ else\r
+ setToolTipText("");\r
+ }\r
+ }\r
+\r
+ void setStatusMessage(SequenceI sequence, int res, int seq)\r