001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.sys.document.web.renderers; 017 018 import javax.servlet.jsp.JspException; 019 import javax.servlet.jsp.PageContext; 020 import javax.servlet.jsp.tagext.Tag; 021 022 import org.kuali.rice.kns.web.taglib.html.KNSTextareaTag; 023 import org.springframework.web.util.HtmlUtils; 024 025 /** 026 * Renders a field as a text area 027 */ 028 public class TextAreaRenderer extends FieldRendererBase { 029 private KNSTextareaTag tag = new KNSTextareaTag(); 030 031 /** 032 * Resets the text area tag 033 * @see org.kuali.kfs.sys.document.web.renderers.FieldRendererBase#clear() 034 */ 035 public void clear() { 036 super.clear(); 037 tag.setPageContext(null); 038 tag.setParent(null); 039 tag.setProperty(null); 040 tag.setValue(null); 041 tag.setTitle(null); 042 tag.setRows(null); 043 tag.setCols(null); 044 tag.setStyleClass(null); 045 tag.setStyleId(null); 046 tag.setTabindex(null); 047 } 048 049 /** 050 * Uses the struts html:textarea tag to render a text area 051 * @see org.kuali.kfs.sys.document.web.renderers.Renderer#render(javax.servlet.jsp.PageContext, javax.servlet.jsp.tagext.Tag) 052 */ 053 public void render(PageContext pageContext, Tag parentTag) throws JspException { 054 tag.setPageContext(pageContext); 055 tag.setParent(parentTag); 056 tag.setProperty(getFieldName()); 057 tag.setValue(HtmlUtils.htmlEscape(getField().getPropertyValue())); 058 tag.setTitle(this.getAccessibleTitle()); 059 tag.setRows(Integer.toString(getField().getRows())); 060 tag.setCols(Integer.toString(getField().getCols())); 061 tag.setStyleClass(getField().getStyleClass()); 062 tag.setStyleId(getFieldName()); 063 064 tag.doStartTag(); 065 tag.doEndTag(); 066 067 renderQuickFinderIfNecessary(pageContext, parentTag); 068 069 if (isShowError()) { 070 renderErrorIcon(pageContext); 071 } 072 } 073 074 /** 075 * I'll take a quick finder if needed 076 * @see org.kuali.kfs.sys.document.web.renderers.FieldRenderer#renderQuickfinder() 077 */ 078 public boolean renderQuickfinder() { 079 return true; 080 } 081 082 }