+ setStatusMessage(sequence, res, seq);\r
+\r
+ tooltipText.setLength(6); // Cuts the buffer back to <html>\r
+\r
+ SequenceGroup[] groups = av.alignment.findAllGroups(sequence);\r
+ if (groups != null)\r
+ {\r
+ for (int g = 0; g < groups.length; g++)\r
+ {\r
+ if (groups[g].getStartRes() <= res && groups[g].getEndRes() >= res)\r
+ {\r
+ if (tooltipText.length() > 6)\r
+ {\r
+ tooltipText.append("<br>");\r
+ }\r
+\r
+ if (!groups[g].getName().startsWith("JTreeGroup") &&\r
+ !groups[g].getName().startsWith("JGroup"))\r
+ {\r
+ tooltipText.append(groups[g].getName());\r
+ }\r
+\r
+ if (groups[g].getDescription() != null)\r
+ {\r
+ tooltipText.append(": " + groups[g].getDescription());\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ // use aa to see if the mouse pointer is on a\r
+ if (av.showSequenceFeatures)\r
+ {\r
+ SequenceFeature[] features = findFeaturesAtRes(\r
+ sequence.getDatasetSequence(), sequence.findPosition(res));\r
+\r
+ if (features != null)\r
+ {\r
+ for (int i = 0; i < features.length; i++)\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 (tooltipText.length() > 6)\r
+ {\r
+ tooltipText.append("<br>");\r
+ }\r
+ tooltipText.append("disulfide bond " + features[i].getBegin() +\r
+ ":" +\r
+ features[i].getEnd());\r
+ if (features[i].links != null)\r
+ {\r
+ tooltipText.append(" <img src=\"" + linkImageURL + "\">");\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if (tooltipText.length() > 6)\r
+ {\r
+ tooltipText.append("<br>");\r
+ }\r
+\r
+ tooltipText.append(features[i].getType() + " " +\r
+ features[i].begin);\r
+ if (features[i].begin != features[i].end)\r
+ {\r
+ tooltipText.append(" " + features[i].end);\r
+ }\r
+\r
+ if (features[i].getDescription() != null\r
+ && !features[i].description.equals(features[i].getType()))\r
+ {\r
+ tmpString = features[i].getDescription();\r
+ int startTag = tmpString.toUpperCase().indexOf("<HTML>");\r
+ if (startTag > -1)\r
+ {\r
+ tmpString = tmpString.substring(startTag + 6);\r
+ }\r
+ int endTag = tmpString.toUpperCase().indexOf("</BODY>");\r
+ if (endTag > -1)\r
+ {\r
+ tmpString = tmpString.substring(0, endTag);\r
+ }\r
+ endTag = tmpString.toUpperCase().indexOf("</HTML>");\r
+ if (endTag > -1)\r
+ {\r
+ tmpString = tmpString.substring(0, endTag);\r
+ }\r
+\r
+ if (startTag > -1)\r
+ {\r
+ tooltipText.append("; " + tmpString);\r
+ }\r
+ else\r
+ {\r
+ if (tmpString.indexOf("<") > -1 || tmpString.indexOf(">") > -1)\r
+ {\r
+ //The description does not specify html is to\r
+ //be used, so we must remove < > symbols\r
+ tmpString = tmpString.replaceAll("<", "<");\r
+ tmpString = tmpString.replaceAll(">", ">");\r
+\r
+ tooltipText.append("; ");\r
+ tooltipText.append(tmpString);\r
+\r
+ }\r
+ else\r
+ {\r
+ tooltipText.append("; " + tmpString);\r
+ }\r
+ }\r
+ }\r
+ if (features[i].getValue("status") != null)\r
+ {\r
+ String status = features[i].getValue("status").toString();\r
+ if (status.length() > 0)\r
+ {\r
+ tooltipText.append("; (" + features[i].getValue("status") + ")");\r
+ }\r
+ }\r
+\r
+ if (features[i].links != null)\r
+ {\r
+ tooltipText.append(" <img src=\"" + linkImageURL + "\">");\r
+ }\r
+\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ if (tooltipText.length() == 6) // <html></html>\r
+ {\r
+ setToolTipText(null);\r
+ }\r
+ else\r