\r
java.net.URL linkImageURL;\r
\r
+ StringBuffer tooltipText = new StringBuffer("<html>");\r
+ String tmpString;\r
+\r
/**\r
* Creates a new SeqPanel object.\r
*\r
// use aa to see if the mouse pointer is on a\r
if (av.showSequenceFeatures)\r
{\r
+ tooltipText.setLength(6); // Cuts the buffer back to <html>\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 (sbuffer.length() > 6)\r
- sbuffer.append("<br>");\r
- sbuffer.append("disulfide bond " + features[i].getBegin() + ":" +\r
+ if (tooltipText.length() > 6)\r
+ tooltipText.append("<br>");\r
+ tooltipText.append("disulfide bond " + features[i].getBegin() + ":" +\r
features[i].getEnd());\r
if (features[i].links != null)\r
- sbuffer.append(" <img src=\"" + linkImageURL + "\">");\r
+ tooltipText.append(" <img src=\"" + linkImageURL + "\">");\r
}\r
}\r
else\r
{\r
- if (sbuffer.length() > 6)\r
- sbuffer.append("<br>");\r
+ if (tooltipText.length() > 6)\r
+ tooltipText.append("<br>");\r
\r
- sbuffer.append(features[i].getType() + " " +\r
+ tooltipText.append(features[i].getType() + " " +\r
features[i].begin);\r
if (features[i].begin != features[i].end)\r
- sbuffer.append(" " + features[i].end);\r
+ tooltipText.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
+ 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
+ tooltipText.append("; "+tmpString);\r
+ }\r
}\r
+ if (features[i].getValue("status") != null )\r
+ {\r
+ String status = features[i].getValue("status").toString();\r
+ if(status.length()>0)\r
+ tooltipText.append("; (" + features[i].getValue("status") + ")");\r
+ }\r
+\r
if (features[i].links != null)\r
- sbuffer.append(" <img src=\"" + linkImageURL + "\">");\r
+ tooltipText.append(" <img src=\"" + linkImageURL + "\">");\r
\r
}\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
+\r
+ if(tooltipText.length()==6) // <html></html>\r
+ {\r
+\r
setToolTipText("");\r
+ }\r
else\r
- setToolTipText(sbuffer.toString());\r
+ {\r
+ tooltipText.append("</html>");\r
+ setToolTipText(tooltipText.toString());\r
+ }\r
}\r
else\r
setToolTipText("");\r