From: amwaterhouse Date: Wed, 18 Oct 2006 13:00:26 +0000 (+0000) Subject: parseDescriptionHTML X-Git-Tag: Release_2_2~268 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=c7e0af7844a7c6e3a206f7e854d14841d55fbb66;hp=b167c8e8ec2a5de87bbb2f7b1aa952381e14581a;p=jalview.git parseDescriptionHTML --- diff --git a/src/jalview/io/FeaturesFile.java b/src/jalview/io/FeaturesFile.java index c32fbc9..d81141c 100755 --- a/src/jalview/io/FeaturesFile.java +++ b/src/jalview/io/FeaturesFile.java @@ -265,32 +265,59 @@ public class FeaturesFile extends AlignFile return true; } - void parseDescriptionHTML(SequenceFeature sf, boolean removeHTML) + public void parseDescriptionHTML(SequenceFeature sf, boolean removeHTML) { + if(removeHTML && sf.getDescription().toUpperCase().indexOf("")==-1) + removeHTML = false; + StringBuffer sb = new StringBuffer(); StringTokenizer st = new StringTokenizer(sf.getDescription(), "<"); String token, link; + int startTag; + String tag=null; while(st.hasMoreElements()) { - token = st.nextToken("<>"); + token = st.nextToken("&>"); if(token.equalsIgnoreCase("html") || token.startsWith("/")) + { continue; + } + + tag = null; + startTag = token.indexOf("<"); + + if (startTag > -1) + { + tag = token.substring(startTag+1); + token = token.substring(0, startTag); + } - if(token.startsWith("a href=")) + if (tag != null && tag.toUpperCase().startsWith("A HREF=")) { - link = token.substring(token.indexOf("\"")+1, token.length()-1); + if(token.length()>0) + sb.append(token); + link = tag.substring(tag.indexOf("\"") + 1, tag.length() - 1); String label = st.nextToken("<>"); - sf.addLink(label+"|"+link); - sb.append(label+"%LINK%"); + sf.addLink(label + "|" + link); + sb.append(label + "%LINK%"); } - else if(token.equalsIgnoreCase("br")) + else if (tag != null && tag.equalsIgnoreCase("br")) sb.append("\n"); + else if (token.startsWith("lt;")) + sb.append("<" + token.substring(3)); + else if (token.startsWith("gt;")) + sb.append(">" + token.substring(3)); + else if (token.startsWith("amp;")) + sb.append("&" + token.substring(4)); else + { sb.append(token); + } } if(removeHTML) sf.description = sb.toString(); + } /**