1 23 package org.infoglue.deliver.taglib.common; 24 25 import java.util.regex.Matcher ; 26 import java.util.regex.Pattern ; 27 28 import javax.servlet.jsp.JspException ; 29 30 import org.infoglue.deliver.taglib.TemplateControllerTag; 31 32 36 37 public class TextTransformTag extends TemplateControllerTag 38 { 39 42 private static final long serialVersionUID = 8603406098980150888L; 43 44 47 private String text; 48 49 52 private boolean htmlEncode = false; 53 54 57 private boolean replaceLineBreaks = false; 58 59 62 private String lineBreakReplacer = "<br/>"; 63 64 67 private String lineBreakChar = System.getProperty("line.separator"); 68 69 72 private String replaceString = null; 73 74 77 private String replaceWithString = null; 78 79 82 public TextTransformTag() 83 { 84 super(); 85 } 86 87 93 public int doEndTag() throws JspException 94 { 95 String modifiedText = text; 96 97 if(replaceString != null && replaceWithString != null) 98 { 99 Pattern pattern = Pattern.compile(replaceString); 100 Matcher matcher = pattern.matcher(modifiedText); 101 modifiedText = matcher.replaceAll(replaceWithString); 102 } 103 104 if(replaceLineBreaks) 105 modifiedText.replaceAll(lineBreakChar, lineBreakReplacer); 106 107 if(htmlEncode) 108 modifiedText = this.getController().getVisualFormatter().escapeHTMLforXMLService(modifiedText); 109 110 setResultAttribute(modifiedText); 111 112 return EVAL_PAGE; 113 } 114 115 116 public void setText(String text) throws JspException 117 { 118 this.text = evaluateString("cropText", "text", text); 119 } 120 121 public void setHtmlEncode(boolean htmlEncode) 122 { 123 this.htmlEncode = htmlEncode; 124 } 125 126 public void setReplaceLineBreaks(boolean replaceLineBreaks) 127 { 128 this.replaceLineBreaks = replaceLineBreaks; 129 } 130 131 public void setLineBreakChar(String lineBreakChar) throws JspException 132 { 133 this.lineBreakChar = evaluateString("TextTransform", "lineBreakChar", lineBreakChar); 134 } 135 136 public void setLineBreakReplacer(String lineBreakReplacer) throws JspException 137 { 138 this.lineBreakReplacer = evaluateString("TextTransform", "lineBreakReplacer", lineBreakReplacer); 139 } 140 141 public void setReplaceString(String replaceString) throws JspException 142 { 143 this.replaceString = evaluateString("TextTransform", "replaceString", replaceString); 144 } 145 146 public void setReplaceWithString(String replaceWithString) throws JspException 147 { 148 this.replaceWithString = evaluateString("TextTransform", "replaceWithString", replaceWithString); 149 } 150 } 151 | Popular Tags |