@Test public void fieldTitleMacroRendered() throws IOException { new Expectations() { { modelFormField.getTitle(withNotNull()); result = "FIELDTITLE"; } }; macroFormRenderer.renderFieldTitle(appendable, ImmutableMap.of(), modelFormField); assertAndGetMacroString("renderFieldTitle", ImmutableMap.of("title", "FIELDTITLE")); }
@Override public void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField) throws IOException { String titleText = modelFormField.getTitle(context); String style = modelFormField.getTitleStyle(); String id = modelFormField.getCurrentContainerId(context); StringBuilder sb = new StringBuilder(); if (UtilValidate.isNotEmpty(titleText)) { if (" ".equals(titleText)) { executeMacro(writer, "<@renderFormatEmptySpace />"); } else { titleText = UtilHttp.encodeAmpersands(titleText); titleText = encode(titleText, modelFormField, context); if (UtilValidate.isNotEmpty(modelFormField.getHeaderLink())) { StringBuilder targetBuffer = new StringBuilder(); FlexibleStringExpander target = FlexibleStringExpander.getInstance(modelFormField.getHeaderLink()); String fullTarget = target.expandString(context); targetBuffer.append(fullTarget); String targetType = CommonWidgetModels.Link.DEFAULT_URL_MODE; if (UtilValidate.isNotEmpty(targetBuffer.toString()) && targetBuffer.toString().toLowerCase(Locale .getDefault()).startsWith("javascript:")) { targetType = "plain"; } StringWriter sr = new StringWriter(); makeHyperlinkString(sr, modelFormField.getHeaderLinkStyle(), targetType, targetBuffer.toString(), null, titleText, "", modelFormField, this.request, this.response, context, ""); String title = sr.toString().replace("\"", "\'"); sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(encodeDoubleQuotes(title)); sr.append("\" />"); executeMacro(writer, sr.toString()); } else if (modelFormField.isSortField()) { renderSortField(writer, context, modelFormField, titleText); } else if (modelFormField.isRowSubmit()) { StringWriter sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(titleText); sr.append("\" showSelectAll=\"Y\"/>"); executeMacro(writer, sr.toString()); } else { sb.append(titleText); } } } if (!sb.toString().isEmpty()) { if ("single".equals(modelFormField.getModelForm().getType()) && modelFormField.getRequiredField()) { String requiredStyle = modelFormField.getRequiredFieldStyle(); if (UtilValidate.isNotEmpty(requiredStyle)) { style = requiredStyle; } } StringWriter sr = new StringWriter(); sr.append("<@renderFieldTitle "); sr.append(" style=\""); sr.append(style); String displayHelpText = UtilProperties.getPropertyValue("widget", "widget.form.displayhelpText"); if ("Y".equals(displayHelpText)) { Delegator delegator = WidgetWorker.getDelegator(context); Locale locale = (Locale) context.get("locale"); String entityName = modelFormField.getEntityName(); String fieldName = modelFormField.getFieldName(); String helpText = UtilHelpText.getEntityFieldDescription(entityName, fieldName, delegator, locale); sr.append("\" fieldHelpText=\""); sr.append(encodeDoubleQuotes(helpText)); } sr.append("\" title=\""); sr.append(sb.toString()); if (UtilValidate.isNotEmpty(id)) { sr.append("\" id=\""); sr.append(id); sr.append("_title"); sr.append("\" for=\""); sr.append(id); } sr.append("\" />"); executeMacro(writer, sr.toString()); } }
MacroFormRenderer implements FormStringRenderer { @Override public void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField) throws IOException { String titleText = modelFormField.getTitle(context); String style = modelFormField.getTitleStyle(); String id = modelFormField.getCurrentContainerId(context); StringBuilder sb = new StringBuilder(); if (UtilValidate.isNotEmpty(titleText)) { if (" ".equals(titleText)) { executeMacro(writer, "<@renderFormatEmptySpace />"); } else { titleText = UtilHttp.encodeAmpersands(titleText); titleText = encode(titleText, modelFormField, context); if (UtilValidate.isNotEmpty(modelFormField.getHeaderLink())) { StringBuilder targetBuffer = new StringBuilder(); FlexibleStringExpander target = FlexibleStringExpander.getInstance(modelFormField.getHeaderLink()); String fullTarget = target.expandString(context); targetBuffer.append(fullTarget); String targetType = CommonWidgetModels.Link.DEFAULT_URL_MODE; if (UtilValidate.isNotEmpty(targetBuffer.toString()) && targetBuffer.toString().toLowerCase(Locale .getDefault()).startsWith("javascript:")) { targetType = "plain"; } StringWriter sr = new StringWriter(); makeHyperlinkString(sr, modelFormField.getHeaderLinkStyle(), targetType, targetBuffer.toString(), null, titleText, "", modelFormField, this.request, this.response, context, ""); String title = sr.toString().replace("\"", "\'"); sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(encodeDoubleQuotes(title)); sr.append("\" />"); executeMacro(writer, sr.toString()); } else if (modelFormField.isSortField()) { renderSortField(writer, context, modelFormField, titleText); } else if (modelFormField.isRowSubmit()) { StringWriter sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(titleText); sr.append("\" showSelectAll=\"Y\"/>"); executeMacro(writer, sr.toString()); } else { sb.append(titleText); } } } if (!sb.toString().isEmpty()) { if ("single".equals(modelFormField.getModelForm().getType()) && modelFormField.getRequiredField()) { String requiredStyle = modelFormField.getRequiredFieldStyle(); if (UtilValidate.isNotEmpty(requiredStyle)) { style = requiredStyle; } } StringWriter sr = new StringWriter(); sr.append("<@renderFieldTitle "); sr.append(" style=\""); sr.append(style); String displayHelpText = UtilProperties.getPropertyValue("widget", "widget.form.displayhelpText"); if ("Y".equals(displayHelpText)) { Delegator delegator = WidgetWorker.getDelegator(context); Locale locale = (Locale) context.get("locale"); String entityName = modelFormField.getEntityName(); String fieldName = modelFormField.getFieldName(); String helpText = UtilHelpText.getEntityFieldDescription(entityName, fieldName, delegator, locale); sr.append("\" fieldHelpText=\""); sr.append(encodeDoubleQuotes(helpText)); } sr.append("\" title=\""); sr.append(sb.toString()); if (UtilValidate.isNotEmpty(id)) { sr.append("\" id=\""); sr.append(id); sr.append("_title"); sr.append("\" for=\""); sr.append(id); } sr.append("\" />"); executeMacro(writer, sr.toString()); } } }
MacroFormRenderer implements FormStringRenderer { @Override public void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField) throws IOException { String titleText = modelFormField.getTitle(context); String style = modelFormField.getTitleStyle(); String id = modelFormField.getCurrentContainerId(context); StringBuilder sb = new StringBuilder(); if (UtilValidate.isNotEmpty(titleText)) { if (" ".equals(titleText)) { executeMacro(writer, "<@renderFormatEmptySpace />"); } else { titleText = UtilHttp.encodeAmpersands(titleText); titleText = encode(titleText, modelFormField, context); if (UtilValidate.isNotEmpty(modelFormField.getHeaderLink())) { StringBuilder targetBuffer = new StringBuilder(); FlexibleStringExpander target = FlexibleStringExpander.getInstance(modelFormField.getHeaderLink()); String fullTarget = target.expandString(context); targetBuffer.append(fullTarget); String targetType = CommonWidgetModels.Link.DEFAULT_URL_MODE; if (UtilValidate.isNotEmpty(targetBuffer.toString()) && targetBuffer.toString().toLowerCase(Locale .getDefault()).startsWith("javascript:")) { targetType = "plain"; } StringWriter sr = new StringWriter(); makeHyperlinkString(sr, modelFormField.getHeaderLinkStyle(), targetType, targetBuffer.toString(), null, titleText, "", modelFormField, this.request, this.response, context, ""); String title = sr.toString().replace("\"", "\'"); sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(encodeDoubleQuotes(title)); sr.append("\" />"); executeMacro(writer, sr.toString()); } else if (modelFormField.isSortField()) { renderSortField(writer, context, modelFormField, titleText); } else if (modelFormField.isRowSubmit()) { StringWriter sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(titleText); sr.append("\" showSelectAll=\"Y\"/>"); executeMacro(writer, sr.toString()); } else { sb.append(titleText); } } } if (!sb.toString().isEmpty()) { if ("single".equals(modelFormField.getModelForm().getType()) && modelFormField.getRequiredField()) { String requiredStyle = modelFormField.getRequiredFieldStyle(); if (UtilValidate.isNotEmpty(requiredStyle)) { style = requiredStyle; } } StringWriter sr = new StringWriter(); sr.append("<@renderFieldTitle "); sr.append(" style=\""); sr.append(style); String displayHelpText = UtilProperties.getPropertyValue("widget", "widget.form.displayhelpText"); if ("Y".equals(displayHelpText)) { Delegator delegator = WidgetWorker.getDelegator(context); Locale locale = (Locale) context.get("locale"); String entityName = modelFormField.getEntityName(); String fieldName = modelFormField.getFieldName(); String helpText = UtilHelpText.getEntityFieldDescription(entityName, fieldName, delegator, locale); sr.append("\" fieldHelpText=\""); sr.append(encodeDoubleQuotes(helpText)); } sr.append("\" title=\""); sr.append(sb.toString()); if (UtilValidate.isNotEmpty(id)) { sr.append("\" id=\""); sr.append(id); sr.append("_title"); sr.append("\" for=\""); sr.append(id); } sr.append("\" />"); executeMacro(writer, sr.toString()); } } MacroFormRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response);  MacroFormRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response,
                             FtlWriter ftlWriter); @Deprecated  MacroFormRenderer(String macroLibraryPath, Appendable writer, HttpServletRequest request, HttpServletResponse response); }
MacroFormRenderer implements FormStringRenderer { @Override public void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField) throws IOException { String titleText = modelFormField.getTitle(context); String style = modelFormField.getTitleStyle(); String id = modelFormField.getCurrentContainerId(context); StringBuilder sb = new StringBuilder(); if (UtilValidate.isNotEmpty(titleText)) { if (" ".equals(titleText)) { executeMacro(writer, "<@renderFormatEmptySpace />"); } else { titleText = UtilHttp.encodeAmpersands(titleText); titleText = encode(titleText, modelFormField, context); if (UtilValidate.isNotEmpty(modelFormField.getHeaderLink())) { StringBuilder targetBuffer = new StringBuilder(); FlexibleStringExpander target = FlexibleStringExpander.getInstance(modelFormField.getHeaderLink()); String fullTarget = target.expandString(context); targetBuffer.append(fullTarget); String targetType = CommonWidgetModels.Link.DEFAULT_URL_MODE; if (UtilValidate.isNotEmpty(targetBuffer.toString()) && targetBuffer.toString().toLowerCase(Locale .getDefault()).startsWith("javascript:")) { targetType = "plain"; } StringWriter sr = new StringWriter(); makeHyperlinkString(sr, modelFormField.getHeaderLinkStyle(), targetType, targetBuffer.toString(), null, titleText, "", modelFormField, this.request, this.response, context, ""); String title = sr.toString().replace("\"", "\'"); sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(encodeDoubleQuotes(title)); sr.append("\" />"); executeMacro(writer, sr.toString()); } else if (modelFormField.isSortField()) { renderSortField(writer, context, modelFormField, titleText); } else if (modelFormField.isRowSubmit()) { StringWriter sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(titleText); sr.append("\" showSelectAll=\"Y\"/>"); executeMacro(writer, sr.toString()); } else { sb.append(titleText); } } } if (!sb.toString().isEmpty()) { if ("single".equals(modelFormField.getModelForm().getType()) && modelFormField.getRequiredField()) { String requiredStyle = modelFormField.getRequiredFieldStyle(); if (UtilValidate.isNotEmpty(requiredStyle)) { style = requiredStyle; } } StringWriter sr = new StringWriter(); sr.append("<@renderFieldTitle "); sr.append(" style=\""); sr.append(style); String displayHelpText = UtilProperties.getPropertyValue("widget", "widget.form.displayhelpText"); if ("Y".equals(displayHelpText)) { Delegator delegator = WidgetWorker.getDelegator(context); Locale locale = (Locale) context.get("locale"); String entityName = modelFormField.getEntityName(); String fieldName = modelFormField.getFieldName(); String helpText = UtilHelpText.getEntityFieldDescription(entityName, fieldName, delegator, locale); sr.append("\" fieldHelpText=\""); sr.append(encodeDoubleQuotes(helpText)); } sr.append("\" title=\""); sr.append(sb.toString()); if (UtilValidate.isNotEmpty(id)) { sr.append("\" id=\""); sr.append(id); sr.append("_title"); sr.append("\" for=\""); sr.append(id); } sr.append("\" />"); executeMacro(writer, sr.toString()); } } MacroFormRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response);  MacroFormRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response,
                             FtlWriter ftlWriter); @Deprecated  MacroFormRenderer(String macroLibraryPath, Appendable writer, HttpServletRequest request, HttpServletResponse response); static String getAjaxParamsFromTarget(String target); boolean getRenderPagination(); void setRenderPagination(boolean renderPagination); void renderLabel(Appendable writer, Map<String, Object> context, ModelScreenWidget.Label label); @Override void renderDisplayField(Appendable writer, Map<String, Object> context, DisplayField displayField); @Override void renderHyperlinkField(Appendable writer, Map<String, Object> context, HyperlinkField hyperlinkField); @Override void renderMenuField(Appendable writer, Map<String, Object> context, MenuField menuField); @Override void renderTextField(Appendable writer, Map<String, Object> context, TextField textField); @Override void renderTextareaField(Appendable writer, Map<String, Object> context, TextareaField textareaField); @Override void renderDateTimeField(Appendable writer, Map<String, Object> context, DateTimeField dateTimeField); @Override void renderDropDownField(Appendable writer, Map<String, Object> context, DropDownField dropDownField); @Override void renderCheckField(Appendable writer, Map<String, Object> context, CheckField checkField); @Override void renderRadioField(Appendable writer, Map<String, Object> context, RadioField radioField); @Override void renderSubmitField(Appendable writer, Map<String, Object> context, SubmitField submitField); @Override void renderResetField(Appendable writer, Map<String, Object> context, ResetField resetField); @Override void renderHiddenField(Appendable writer, Map<String, Object> context, HiddenField hiddenField); @Override void renderHiddenField(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, String value); @Override void renderIgnoredField(Appendable writer, Map<String, Object> context, IgnoredField ignoredField); @Override void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderSingleFormFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderMultiFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatListWrapperOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderEmptyFormDataMessage(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatListWrapperClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField,
                                              int positionSpan); @Override void renderFormatHeaderRowCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField); @Override void renderFormatHeaderRowFormCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowFormCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowFormCellTitleSeparator(Appendable writer, Map<String, Object> context, ModelForm modelForm,
                                                            ModelFormField modelFormField, boolean isLast); @Override void renderFormatItemRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatItemRowClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatItemRowCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField,
                                            int positionSpan); @Override void renderFormatItemRowCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField); @Override void renderFormatItemRowFormCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatItemRowFormCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatSingleWrapperOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatSingleWrapperClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatFieldRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatFieldRowClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatFieldRowTitleCellOpen(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormatFieldRowTitleCellClose(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormatFieldRowSpacerCell(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormatFieldRowWidgetCellOpen(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, int positions,
                                                   int positionSpan, Integer nextPositionInRow); @Override void renderFormatFieldRowWidgetCellClose(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, int positions,
                                                    int positionSpan, Integer nextPositionInRow); @Override void renderFormatEmptySpace(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderTextFindField(Appendable writer, Map<String, Object> context, TextFindField textFindField); @Override void renderRangeFindField(Appendable writer, Map<String, Object> context, RangeFindField rangeFindField); @Override void renderDateFindField(Appendable writer, Map<String, Object> context, DateFindField dateFindField); @Override void renderLookupField(Appendable writer, Map<String, Object> context, LookupField lookupField); void renderNextPrev(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFileField(Appendable writer, Map<String, Object> context, FileField textField); @Override void renderPasswordField(Appendable writer, Map<String, Object> context, PasswordField passwordField); @Override void renderImageField(Appendable writer, Map<String, Object> context, ImageField imageField); @Override void renderFieldGroupOpen(Appendable writer, Map<String, Object> context, ModelForm.FieldGroup fieldGroup); @Override void renderFieldGroupClose(Appendable writer, Map<String, Object> context, ModelForm.FieldGroup fieldGroup); @Override void renderBanner(Appendable writer, Map<String, Object> context, ModelForm.Banner banner); void renderBeginningBoundaryComment(Appendable writer, String widgetType, ModelWidget modelWidget); void renderEndingBoundaryComment(Appendable writer, String widgetType, ModelWidget modelWidget); void renderSortField(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, String titleText); String createAjaxParamsFromUpdateAreas(List<ModelForm.UpdateArea> updateAreas, String extraParams, Map<String, ? extends Object> context); void appendTooltip(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); void makeHyperlinkString(Appendable writer, ModelFormField.SubHyperlink subHyperlink, Map<String, Object> context); void addAsterisks(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); void appendContentUrl(Appendable writer, String location); void makeHyperlinkByType(Appendable writer, String linkType, String linkStyle, String targetType, String target, Map<String,
            String> parameterMap, String description, String targetWindow, String confirmation, ModelFormField modelFormField,
            HttpServletRequest request, HttpServletResponse response, Map<String, Object> context); void makeHyperlinkString(Appendable writer, String linkStyle, String targetType, String target, Map<String, String> parameterMap,
                                    String description, String confirmation, ModelFormField modelFormField, HttpServletRequest request,
                                    HttpServletResponse response, Map<String, Object> context, String targetWindow); void makeHiddenFormLinkAnchor(Appendable writer, String linkStyle, String description, String confirmation, ModelFormField modelFormField,
                                         HttpServletRequest request, HttpServletResponse response, Map<String, Object> context); @Override void renderContainerFindField(Appendable writer, Map<String, Object> context, ContainerField containerField); }
MacroFormRenderer implements FormStringRenderer { @Override public void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField) throws IOException { String titleText = modelFormField.getTitle(context); String style = modelFormField.getTitleStyle(); String id = modelFormField.getCurrentContainerId(context); StringBuilder sb = new StringBuilder(); if (UtilValidate.isNotEmpty(titleText)) { if (" ".equals(titleText)) { executeMacro(writer, "<@renderFormatEmptySpace />"); } else { titleText = UtilHttp.encodeAmpersands(titleText); titleText = encode(titleText, modelFormField, context); if (UtilValidate.isNotEmpty(modelFormField.getHeaderLink())) { StringBuilder targetBuffer = new StringBuilder(); FlexibleStringExpander target = FlexibleStringExpander.getInstance(modelFormField.getHeaderLink()); String fullTarget = target.expandString(context); targetBuffer.append(fullTarget); String targetType = CommonWidgetModels.Link.DEFAULT_URL_MODE; if (UtilValidate.isNotEmpty(targetBuffer.toString()) && targetBuffer.toString().toLowerCase(Locale .getDefault()).startsWith("javascript:")) { targetType = "plain"; } StringWriter sr = new StringWriter(); makeHyperlinkString(sr, modelFormField.getHeaderLinkStyle(), targetType, targetBuffer.toString(), null, titleText, "", modelFormField, this.request, this.response, context, ""); String title = sr.toString().replace("\"", "\'"); sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(encodeDoubleQuotes(title)); sr.append("\" />"); executeMacro(writer, sr.toString()); } else if (modelFormField.isSortField()) { renderSortField(writer, context, modelFormField, titleText); } else if (modelFormField.isRowSubmit()) { StringWriter sr = new StringWriter(); sr.append("<@renderHyperlinkTitle "); sr.append(" name=\""); sr.append(modelFormField.getModelForm().getName()); sr.append("\" title=\""); sr.append(titleText); sr.append("\" showSelectAll=\"Y\"/>"); executeMacro(writer, sr.toString()); } else { sb.append(titleText); } } } if (!sb.toString().isEmpty()) { if ("single".equals(modelFormField.getModelForm().getType()) && modelFormField.getRequiredField()) { String requiredStyle = modelFormField.getRequiredFieldStyle(); if (UtilValidate.isNotEmpty(requiredStyle)) { style = requiredStyle; } } StringWriter sr = new StringWriter(); sr.append("<@renderFieldTitle "); sr.append(" style=\""); sr.append(style); String displayHelpText = UtilProperties.getPropertyValue("widget", "widget.form.displayhelpText"); if ("Y".equals(displayHelpText)) { Delegator delegator = WidgetWorker.getDelegator(context); Locale locale = (Locale) context.get("locale"); String entityName = modelFormField.getEntityName(); String fieldName = modelFormField.getFieldName(); String helpText = UtilHelpText.getEntityFieldDescription(entityName, fieldName, delegator, locale); sr.append("\" fieldHelpText=\""); sr.append(encodeDoubleQuotes(helpText)); } sr.append("\" title=\""); sr.append(sb.toString()); if (UtilValidate.isNotEmpty(id)) { sr.append("\" id=\""); sr.append(id); sr.append("_title"); sr.append("\" for=\""); sr.append(id); } sr.append("\" />"); executeMacro(writer, sr.toString()); } } MacroFormRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response);  MacroFormRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response,
                             FtlWriter ftlWriter); @Deprecated  MacroFormRenderer(String macroLibraryPath, Appendable writer, HttpServletRequest request, HttpServletResponse response); static String getAjaxParamsFromTarget(String target); boolean getRenderPagination(); void setRenderPagination(boolean renderPagination); void renderLabel(Appendable writer, Map<String, Object> context, ModelScreenWidget.Label label); @Override void renderDisplayField(Appendable writer, Map<String, Object> context, DisplayField displayField); @Override void renderHyperlinkField(Appendable writer, Map<String, Object> context, HyperlinkField hyperlinkField); @Override void renderMenuField(Appendable writer, Map<String, Object> context, MenuField menuField); @Override void renderTextField(Appendable writer, Map<String, Object> context, TextField textField); @Override void renderTextareaField(Appendable writer, Map<String, Object> context, TextareaField textareaField); @Override void renderDateTimeField(Appendable writer, Map<String, Object> context, DateTimeField dateTimeField); @Override void renderDropDownField(Appendable writer, Map<String, Object> context, DropDownField dropDownField); @Override void renderCheckField(Appendable writer, Map<String, Object> context, CheckField checkField); @Override void renderRadioField(Appendable writer, Map<String, Object> context, RadioField radioField); @Override void renderSubmitField(Appendable writer, Map<String, Object> context, SubmitField submitField); @Override void renderResetField(Appendable writer, Map<String, Object> context, ResetField resetField); @Override void renderHiddenField(Appendable writer, Map<String, Object> context, HiddenField hiddenField); @Override void renderHiddenField(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, String value); @Override void renderIgnoredField(Appendable writer, Map<String, Object> context, IgnoredField ignoredField); @Override void renderFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderSingleFormFieldTitle(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderMultiFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatListWrapperOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderEmptyFormDataMessage(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatListWrapperClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField,
                                              int positionSpan); @Override void renderFormatHeaderRowCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField); @Override void renderFormatHeaderRowFormCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowFormCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatHeaderRowFormCellTitleSeparator(Appendable writer, Map<String, Object> context, ModelForm modelForm,
                                                            ModelFormField modelFormField, boolean isLast); @Override void renderFormatItemRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatItemRowClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatItemRowCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField,
                                            int positionSpan); @Override void renderFormatItemRowCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm, ModelFormField modelFormField); @Override void renderFormatItemRowFormCellOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatItemRowFormCellClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatSingleWrapperOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatSingleWrapperClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatFieldRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatFieldRowClose(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFormatFieldRowTitleCellOpen(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormatFieldRowTitleCellClose(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormatFieldRowSpacerCell(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); @Override void renderFormatFieldRowWidgetCellOpen(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, int positions,
                                                   int positionSpan, Integer nextPositionInRow); @Override void renderFormatFieldRowWidgetCellClose(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, int positions,
                                                    int positionSpan, Integer nextPositionInRow); @Override void renderFormatEmptySpace(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderTextFindField(Appendable writer, Map<String, Object> context, TextFindField textFindField); @Override void renderRangeFindField(Appendable writer, Map<String, Object> context, RangeFindField rangeFindField); @Override void renderDateFindField(Appendable writer, Map<String, Object> context, DateFindField dateFindField); @Override void renderLookupField(Appendable writer, Map<String, Object> context, LookupField lookupField); void renderNextPrev(Appendable writer, Map<String, Object> context, ModelForm modelForm); @Override void renderFileField(Appendable writer, Map<String, Object> context, FileField textField); @Override void renderPasswordField(Appendable writer, Map<String, Object> context, PasswordField passwordField); @Override void renderImageField(Appendable writer, Map<String, Object> context, ImageField imageField); @Override void renderFieldGroupOpen(Appendable writer, Map<String, Object> context, ModelForm.FieldGroup fieldGroup); @Override void renderFieldGroupClose(Appendable writer, Map<String, Object> context, ModelForm.FieldGroup fieldGroup); @Override void renderBanner(Appendable writer, Map<String, Object> context, ModelForm.Banner banner); void renderBeginningBoundaryComment(Appendable writer, String widgetType, ModelWidget modelWidget); void renderEndingBoundaryComment(Appendable writer, String widgetType, ModelWidget modelWidget); void renderSortField(Appendable writer, Map<String, Object> context, ModelFormField modelFormField, String titleText); String createAjaxParamsFromUpdateAreas(List<ModelForm.UpdateArea> updateAreas, String extraParams, Map<String, ? extends Object> context); void appendTooltip(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); void makeHyperlinkString(Appendable writer, ModelFormField.SubHyperlink subHyperlink, Map<String, Object> context); void addAsterisks(Appendable writer, Map<String, Object> context, ModelFormField modelFormField); void appendContentUrl(Appendable writer, String location); void makeHyperlinkByType(Appendable writer, String linkType, String linkStyle, String targetType, String target, Map<String,
            String> parameterMap, String description, String targetWindow, String confirmation, ModelFormField modelFormField,
            HttpServletRequest request, HttpServletResponse response, Map<String, Object> context); void makeHyperlinkString(Appendable writer, String linkStyle, String targetType, String target, Map<String, String> parameterMap,
                                    String description, String confirmation, ModelFormField modelFormField, HttpServletRequest request,
                                    HttpServletResponse response, Map<String, Object> context, String targetWindow); void makeHiddenFormLinkAnchor(Appendable writer, String linkStyle, String description, String confirmation, ModelFormField modelFormField,
                                         HttpServletRequest request, HttpServletResponse response, Map<String, Object> context); @Override void renderContainerFindField(Appendable writer, Map<String, Object> context, ContainerField containerField);  }