remove html and body from tooltip
authoramwaterhouse <Andrew Waterhouse>
Wed, 18 Oct 2006 13:05:05 +0000 (13:05 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 18 Oct 2006 13:05:05 +0000 (13:05 +0000)
src/jalview/gui/SeqPanel.java

index 5782797..5c96e79 100755 (executable)
@@ -74,6 +74,9 @@ public class SeqPanel extends JPanel implements MouseListener,
 \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
@@ -527,12 +530,11 @@ public class SeqPanel extends JPanel implements MouseListener,
         // 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
@@ -549,34 +551,74 @@ public class SeqPanel extends JPanel implements MouseListener,
                     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("<", "&lt;");\r
+                         tmpString = tmpString.replaceAll(">", "&gt;");\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
@@ -589,15 +631,18 @@ public class SeqPanel extends JPanel implements MouseListener,
                 }\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