1 18 19 package cowsultants.itracker.web.taglib; 20 21 import java.io.*; 22 import java.util.*; 23 import java.text.*; 24 import javax.servlet.*; 25 import javax.servlet.http.*; 26 import javax.servlet.jsp.*; 27 import javax.servlet.jsp.tagext.*; 28 29 import org.apache.struts.util.*; 30 31 import cowsultants.itracker.ejb.client.resources.*; 32 import cowsultants.itracker.ejb.client.util.*; 33 import cowsultants.itracker.web.util.*; 34 35 public class FormatDescriptionTag extends BodyTagSupport { 36 private String text = null; 37 38 private String truncateKey = "itracker.web.generic.truncated"; 39 private int truncateLength = 40; 40 41 public String getTruncateKey() { 42 return truncateKey; 43 } 44 45 public void setTruncateKey(String value) { 46 truncateKey = value; 47 } 48 49 public int getTruncateLength() { 50 return truncateLength; 51 } 52 53 public void setTruncateLength(int value) { 54 truncateLength = value; 55 } 56 57 public int doStartTag() throws JspException { 58 text = null; 59 return EVAL_BODY_BUFFERED; 60 } 61 62 public int doAfterBody() throws JspException { 63 if(bodyContent != null) { 64 String value = bodyContent.getString().trim(); 65 if(value.length() > 0) { 66 text = value; 67 } 68 } 69 return SKIP_BODY; 70 } 71 72 public int doEndTag() throws JspException { 73 StringBuffer results = new StringBuffer (); 74 if(text != null) { 75 Locale currLocale = null; 76 77 HttpSession session = pageContext.getSession(); 78 if(session != null) { 79 currLocale = (Locale) session.getAttribute(Constants.LOCALE_KEY); 80 } 81 82 if(text.length() > truncateLength) { 83 String truncateValue = ITrackerResources.getString(truncateKey, currLocale); 84 if(truncateValue == null) { 85 truncateValue = ""; 86 } 87 results.append(text.substring(0, (truncateLength - truncateValue.length()))); 88 results.append(truncateValue); 89 } else { 90 results.append(text); 91 } 92 } 93 ResponseUtils.write(pageContext, results.toString()); 94 clearState(); 95 return (EVAL_PAGE); 96 } 97 98 public void release() { 99 super.release(); 100 clearState(); 101 } 102 103 private void clearState() { 104 truncateKey = "itracker.web.generic.truncated"; 105 truncateLength = 40; 106 text = null; 107 } 108 } 109 | Popular Tags |