package com.venky.swf.views.controls.page.text; import org.apache.commons.lang3.StringEscapeUtils; import com.venky.core.string.StringUtil; import com.venky.swf.db.model.reflection.ModelReflector; import com.venky.swf.util.WordWrapUtil; import com.venky.swf.views.controls.Control; public class TextArea extends Control implements _IAutoCompleteControl{ public TextArea() { super("textarea", new String[]{"rows","1","cols",String.valueOf(ModelReflector.MAX_DATA_LENGTH_FOR_TEXT_BOX)}); addClass("form-control"); } @Override public void setText(String value) { super.setText(StringEscapeUtils.escapeHtml4(StringUtil.valueOf(value))); fixRows(); } public void fixRows(){ setRows(WordWrapUtil.getNumRowsRequired(getText(), getCols())); } public void setCols(int cols){ setProperty("cols", cols); } public int getCols(){ int cols = Integer.valueOf(getProperty("cols","80")); return (cols == 0 ? 80 : cols); } public void setRows(int rows){ setProperty("rows", rows); } public int getRows(){ int rows = (Integer.valueOf(getProperty("rows","1"))); return (rows == 0 ? 1 : rows); } public void setAutocompleteServiceURL(String autoCompleteServiceURL){ setProperty("autoCompleteUrl", autoCompleteServiceURL); } public void setOnAutoCompleteSelectProcessingUrl(String url){ setProperty("onAutoCompleteSelectUrl",url); } @Override public void setValue(final Object value){ setText(StringUtil.valueOf(value)); } @Override public String getValue(){ return getText(); } private static final long serialVersionUID = 7419554617119038841L; }