📄 htmlformrenderer.java
字号:
/* * $Id: HtmlFormRenderer.java 7100 2006-03-29 00:26:54Z jonesde $ * * Copyright (c) 2003 The Open For Business Project - www.ofbiz.org * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. */package org.ofbiz.widget.html;import java.util.Iterator;import java.util.List;import java.util.Locale;import java.util.Map;import java.util.HashSet;import java.util.Calendar;import java.sql.Timestamp;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.UtilHttp;import org.ofbiz.base.util.UtilProperties;import org.ofbiz.base.util.UtilValidate;import org.ofbiz.base.util.string.FlexibleStringExpander;import org.ofbiz.webapp.control.RequestHandler;import org.ofbiz.webapp.taglib.ContentUrlTag;import org.ofbiz.widget.WidgetWorker;import org.ofbiz.widget.form.FormStringRenderer;import org.ofbiz.widget.form.ModelForm;import org.ofbiz.widget.form.ModelFormField;import org.ofbiz.widget.form.ModelFormField.CheckField;import org.ofbiz.widget.form.ModelFormField.DateFindField;import org.ofbiz.widget.form.ModelFormField.DateTimeField;import org.ofbiz.widget.form.ModelFormField.DisplayEntityField;import org.ofbiz.widget.form.ModelFormField.DisplayField;import org.ofbiz.widget.form.ModelFormField.DropDownField;import org.ofbiz.widget.form.ModelFormField.FileField;import org.ofbiz.widget.form.ModelFormField.HiddenField;import org.ofbiz.widget.form.ModelFormField.HyperlinkField;import org.ofbiz.widget.form.ModelFormField.IgnoredField;import org.ofbiz.widget.form.ModelFormField.ImageField;import org.ofbiz.widget.form.ModelFormField.LookupField;import org.ofbiz.widget.form.ModelFormField.PasswordField;import org.ofbiz.widget.form.ModelFormField.RadioField;import org.ofbiz.widget.form.ModelFormField.RangeFindField;import org.ofbiz.widget.form.ModelFormField.ResetField;import org.ofbiz.widget.form.ModelFormField.SubmitField;import org.ofbiz.widget.form.ModelFormField.TextField;import org.ofbiz.widget.form.ModelFormField.TextFindField;import org.ofbiz.widget.form.ModelFormField.TextareaField;/** * Widget Library - HTML Form Renderer implementation * * @author <a href="mailto:jonesde@ofbiz.org">David E. Jones</a> * @author <a href="mailto:byersa@automationgroups.com">Al Byers</a> * @version $Rev: 7100 $ * @since 2.2 */public class HtmlFormRenderer implements FormStringRenderer { public static final String module = HtmlFormRenderer.class.getName(); HttpServletRequest request; HttpServletResponse response; protected String lastFieldGroupId = ""; protected HtmlFormRenderer() {} public HtmlFormRenderer(HttpServletRequest request, HttpServletResponse response) { this.request = request; this.response = response; } public void appendWhitespace(StringBuffer buffer) { // appending line ends for now, but this could be replaced with a simple space or something buffer.append("\r\n"); //buffer.append(' '); } public void appendOfbizUrl(StringBuffer buffer, String location) { ServletContext ctx = (ServletContext) this.request.getAttribute("servletContext"); RequestHandler rh = (RequestHandler) ctx.getAttribute("_REQUEST_HANDLER_"); // make and append the link buffer.append(rh.makeLink(this.request, this.response, location)); } public void appendContentUrl(StringBuffer buffer, String location) { ContentUrlTag.appendContentPrefix(this.request, buffer); buffer.append(location); } public void appendTooltip(StringBuffer buffer, Map context, ModelFormField modelFormField) { // render the tooltip, in other methods too String tooltip = modelFormField.getTooltip(context); if (UtilValidate.isNotEmpty(tooltip)) { buffer.append("<span"); String tooltipStyle = modelFormField.getTooltipStyle(); if (UtilValidate.isNotEmpty(tooltipStyle)) { buffer.append(" class=\""); buffer.append(tooltipStyle); buffer.append("\""); } buffer.append("> -["); buffer.append(tooltip); buffer.append("]- </span>"); } } public void addAstericks(StringBuffer buffer, Map context, ModelFormField modelFormField) { boolean requiredField = modelFormField.getRequiredField(); if (requiredField) { String requiredStyle = modelFormField.getRequiredFieldStyle(); if (UtilValidate.isEmpty(requiredStyle)) { buffer.append("*"); } } return; } /* (non-Javadoc) * @see org.ofbiz.widget.form.FormStringRenderer#renderDisplayField(java.lang.StringBuffer, java.util.Map, org.ofbiz.widget.form.ModelFormField.DisplayField) */ public void renderDisplayField(StringBuffer buffer, Map context, DisplayField displayField) { ModelFormField modelFormField = displayField.getModelFormField(); buffer.append("<span"); if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) { buffer.append(" class=\""); buffer.append(modelFormField.getWidgetStyle()); buffer.append("\""); } // add a style of red if this is a date/time field and redWhen is true if (modelFormField.shouldBeRed(context)) { buffer.append(" style=\"color: red;\""); } buffer.append(">"); buffer.append(displayField.getDescription(context)); buffer.append("</span>"); if (displayField instanceof DisplayEntityField) { this.makeHyperlinkString(buffer, ((DisplayEntityField) displayField).getSubHyperlink(), context); } this.appendTooltip(buffer, context, modelFormField); this.appendWhitespace(buffer); } /* (non-Javadoc) * @see org.ofbiz.widget.form.FormStringRenderer#renderHyperlinkField(java.lang.StringBuffer, java.util.Map, org.ofbiz.widget.form.ModelFormField.HyperlinkField) */ public void renderHyperlinkField(StringBuffer buffer, Map context, HyperlinkField hyperlinkField) { ModelFormField modelFormField = hyperlinkField.getModelFormField(); this.makeHyperlinkString( buffer, modelFormField.getWidgetStyle(), hyperlinkField.getTargetType(), hyperlinkField.getTarget(context), hyperlinkField.getDescription(context), hyperlinkField.getTargetWindow(context)); this.appendTooltip(buffer, context, modelFormField); this.appendWhitespace(buffer); } public void makeHyperlinkString(StringBuffer buffer, ModelFormField.SubHyperlink subHyperlink, Map context) { if (subHyperlink == null) { return; } if (subHyperlink.shouldUse(context)) { buffer.append(' '); this.makeHyperlinkString( buffer, subHyperlink.getLinkStyle(), subHyperlink.getTargetType(), subHyperlink.getTarget(context), subHyperlink.getDescription(context), subHyperlink.getTargetWindow(context)); } } public void makeHyperlinkString(StringBuffer buffer, String linkStyle, String targetType, String target, String description, String targetWindow) { Map context = null; WidgetWorker.makeHyperlinkString(buffer, linkStyle, targetType, target, description, this.request, this.response, context, targetWindow); } /* (non-Javadoc) * @see org.ofbiz.widget.form.FormStringRenderer#renderTextField(java.lang.StringBuffer, java.util.Map, org.ofbiz.widget.form.ModelFormField.TextField) */ public void renderTextField(StringBuffer buffer, Map context, TextField textField) { ModelFormField modelFormField = textField.getModelFormField(); buffer.append("<input type=\"text\""); String className = modelFormField.getWidgetStyle(); if (UtilValidate.isNotEmpty(className)) { buffer.append(" class=\""); buffer.append(className); buffer.append('"'); } // add a style of red if this is a date/time field and redWhen is true if (modelFormField.shouldBeRed(context)) { buffer.append(" style=\"color: red;\""); } buffer.append(" name=\""); buffer.append(modelFormField.getParameterName(context)); buffer.append('"'); String value = modelFormField.getEntry(context, textField.getDefaultValue(context)); if (UtilValidate.isNotEmpty(value)) { buffer.append(" value=\""); buffer.append(value); buffer.append('"'); } buffer.append(" size=\""); buffer.append(textField.getSize()); buffer.append('"'); Integer maxlength = textField.getMaxlength(); if (maxlength != null) { buffer.append(" maxlength=\""); buffer.append(maxlength.intValue()); buffer.append('"'); } String idName = modelFormField.getIdName(); if (UtilValidate.isNotEmpty(idName)) { buffer.append(" id=\""); buffer.append(idName); buffer.append('"'); } String event = modelFormField.getEvent(); String action = modelFormField.getAction(); if (UtilValidate.isNotEmpty(event) && UtilValidate.isNotEmpty(action)) { buffer.append(" "); buffer.append(event); buffer.append("=\""); buffer.append(action); buffer.append('"'); } buffer.append("/>"); this.addAstericks(buffer, context, modelFormField); this.makeHyperlinkString(buffer, textField.getSubHyperlink(), context); this.appendTooltip(buffer, context, modelFormField); this.appendWhitespace(buffer); } /* (non-Javadoc) * @see org.ofbiz.widget.form.FormStringRenderer#renderTextareaField(java.lang.StringBuffer, java.util.Map, org.ofbiz.widget.form.ModelFormField.TextareaField) */ public void renderTextareaField(StringBuffer buffer, Map context, TextareaField textareaField) { ModelFormField modelFormField = textareaField.getModelFormField(); buffer.append("<textarea"); String className = modelFormField.getWidgetStyle(); if (UtilValidate.isNotEmpty(className)) { buffer.append(" class=\""); buffer.append(className); buffer.append('"'); } else { buffer.append(" class=\"textAreaBox\""); } buffer.append(" name=\""); buffer.append(modelFormField.getParameterName(context)); buffer.append('"'); buffer.append(" cols=\""); buffer.append(textareaField.getCols()); buffer.append('"'); buffer.append(" rows=\""); buffer.append(textareaField.getRows()); buffer.append('"'); String idName = modelFormField.getIdName(); if (UtilValidate.isNotEmpty(idName)) { buffer.append(" id=\""); buffer.append(idName); buffer.append('"'); } else if (textareaField.getVisualEditorEnable()) { buffer.append(" id=\"");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -