1 Clazz.declarePackage ("jalview.util");
2 Clazz.load (["java.lang.StringBuffer", "java.util.ArrayList", "java.util.regex.Pattern"], "jalview.util.ParseHtmlBodyAndLinks", ["java.util.StringTokenizer"], function () {
3 c$ = Clazz.decorateAsClass (function () {
5 this.htmlContent = true;
8 Clazz.instantialize (this, arguments);
9 }, jalview.util, "ParseHtmlBodyAndLinks");
10 Clazz.prepareFields (c$, function () {
11 this.links = new java.util.ArrayList ();
12 this.sb = new StringBuffer ();
14 Clazz.defineMethod (c$, "getOrig",
18 Clazz.defineMethod (c$, "isHtmlContent",
20 return this.htmlContent;
22 Clazz.defineMethod (c$, "getContent",
24 return this.sb.toString ();
26 Clazz.defineMethod (c$, "getLinks",
30 Clazz.makeConstructor (c$,
31 function (description, removeHTML, newline) {
32 if (description == null || description.length == 0) {
33 this.htmlContent = false;
35 }if (description.toUpperCase ().indexOf ("<HTML>") == -1) {
36 this.htmlContent = false;
37 }this.orig = description;
38 var st = new java.util.StringTokenizer (description, "<");
43 while (st.hasMoreElements ()) {
44 token = st.nextToken ("&>");
45 if (token.equalsIgnoreCase ("html") || token.startsWith ("/")) {
48 startTag = token.indexOf ("<");
50 tag = token.substring (startTag + 1);
51 token = token.substring (0, startTag);
52 }if (tag != null && tag.toUpperCase ().startsWith ("A HREF=")) {
53 if (token.length > 0) {
54 this.sb.append (token);
55 }link = tag.substring (tag.indexOf ("\"") + 1, tag.length - 1);
56 var label = st.nextToken ("<>");
57 this.links.add (label + "|" + link);
58 this.sb.append (label + "%LINK%");
59 } else if (tag != null && tag.equalsIgnoreCase ("br")) {
60 this.sb.append (newline);
61 } else if (token.startsWith ("lt;")) {
62 this.sb.append ("<" + token.substring (3));
63 } else if (token.startsWith ("gt;")) {
64 this.sb.append (">" + token.substring (3));
65 } else if (token.startsWith ("amp;")) {
66 this.sb.append ("&" + token.substring (4));
68 this.sb.append (token);
70 if (removeHTML && !this.htmlContent) {
71 this.sb = new StringBuffer (jalview.util.ParseHtmlBodyAndLinks.LEFT_ANGLE_BRACKET_PATTERN.matcher (description).replaceAll ("<"));
73 Clazz.defineMethod (c$, "getNonHtmlContent",
75 return this.isHtmlContent () ? this.sb.toString () : this.orig;
77 c$.LEFT_ANGLE_BRACKET_PATTERN = c$.prototype.LEFT_ANGLE_BRACKET_PATTERN = java.util.regex.Pattern.compile ("<");