/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.formio.render; import net.formio.BasicListFormMapping; import net.formio.FormElement; import net.formio.FormField; import net.formio.FormMapping; import net.formio.render.tdi.TdiResponseBuilder; import net.formio.validation.ConstraintViolationMessage; /** * Wrapper of {@link FormRenderer} that allows convenient implementations that are extending * {@link FormRenderer}'s functionality. * * @author Radek Beran */ public class FormRendererWrapper extends FormRenderer { private final FormRenderer inner; public FormRendererWrapper(FormRenderer wrapped) { super(wrapped.getLocation()); this.inner = wrapped; } /** * <p>Renders given form element - form mapping or form field:</p> * <ul> * <li>Surrounding placeholder tag (even if the element is invisible).</li> * <li>Form mapping or form field if it is visible (element markup).</li> * </ul> * <p>Visible mapping consists of mapping box with label and nested elements, * visible form field consists of field box with label and field envelope (with nested form input).</p> * * @param element * @return */ @Override public <T> String renderElement(FormElement<T> element) { return getInnerRenderer().renderElement(element); } /** * Renders the element itself without the surrounding placeholder tag. * If the given element is invisible, returns empty string. * @param element * @return */ @Override public <T> String renderElementMarkup(FormElement<T> element) { return getInnerRenderer().renderElementMarkup(element); } /** * Renders element in visible state (assuming the element is visible). * @param element * @return */ @Override public <T> String renderVisibleElement(FormElement<T> element) { return getInnerRenderer().renderVisibleElement(element); } /** * Renders form mapping in visible state (assuming the mapping is visible). * @param mapping * @return */ @Override public <T> String renderVisibleMapping(FormMapping<T> mapping) { return getInnerRenderer().renderVisibleMapping(mapping); } /** * Renders form field in visible state (assuming the field is visible). * @param field * @return */ @Override public <T> String renderVisibleField(FormField<T> field) { return getInnerRenderer().renderVisibleField(field); } /** * Creates builder of AJAX response. * @return */ @Override public TdiResponseBuilder ajaxResponse() { return getInnerRenderer().ajaxResponse(); } @Override protected <T> String renderMarkupListMapping(BasicListFormMapping<T> listMapping) { return getInnerRenderer().renderMarkupListMapping(listMapping); } @Override protected <T> String renderMarkupElementPlaceholder(FormElement<T> element, String innerMarkup) { return getInnerRenderer().renderMarkupElementPlaceholder(element, innerMarkup); } @Override protected <T> String renderMarkupMappingBox(FormMapping<T> mapping, String innerMarkup) { return getInnerRenderer().renderMarkupMappingBox(mapping, innerMarkup); } @Override protected <T> String renderMarkupFormGroup(FormField<T> field, String innerMarkup) { return getInnerRenderer().renderMarkupFormGroup(field, innerMarkup); } @Override protected <T> String renderMarkupInputEnvelope(FormField<T> field, String innerMarkup) { return getInnerRenderer().renderMarkupInputEnvelope(field, innerMarkup); } @Override public <T> String renderMarkupGlobalMessages(FormMapping<T> formMapping) { return getInnerRenderer().renderMarkupGlobalMessages(formMapping); } @Override protected <T> String renderMarkupMessageList(FormElement<T> element) { return getInnerRenderer().renderMarkupMessageList(element); } @Override protected String renderMarkupMessage(ConstraintViolationMessage msg) { return getInnerRenderer().renderMarkupMessage(msg); } @Override protected <T> String renderMarkupMappingLabel(FormMapping<T> mapping) { return getInnerRenderer().renderMarkupMappingLabel(mapping); } @Override protected <T> String renderMarkupFieldLabel(FormField<T> field) { return getInnerRenderer().renderMarkupFieldLabel(field); } @Override protected <T> String renderMarkupTextArea(FormField<T> field) { return getInnerRenderer().renderMarkupTextArea(field); } @Override protected <T> String renderMarkupInput(FormField<T> field) { return getInnerRenderer().renderMarkupInput(field); } @Override protected <T> String renderMarkupCheckbox(FormField<T> field) { return getInnerRenderer().renderMarkupCheckbox(field); } @Override protected <T> String renderMarkupSelect(FormField<T> field) { return getInnerRenderer().renderMarkupSelect(field); } @Override protected <T> String renderMarkupChecks(FormField<T> field) { return getInnerRenderer().renderMarkupChecks(field); } @Override protected <T> String renderMarkupButton(FormField<T> field) { return getInnerRenderer().renderMarkupButton(field); } /** * Returns string will all HTML attributes of given element. * @param element * @return */ @Override protected <T> String getElementAttributes(FormElement<T> element) { return getInnerRenderer().getElementAttributes(element); } @Override protected <T> String getAccessibilityAttributes(FormElement<T> element) { return getInnerRenderer().getAccessibilityAttributes(element); } /** * Returns AJAX attributes of TDI library. * @param element * @return */ @Override protected <T> String getAjaxAttributes(FormElement<T> element) { return getInnerRenderer().getAjaxAttributes(element); } /** * Returns placeholder attribute for the input of given form field. * This attribute shows help (placeholder value) inside the form input * before the user fills in his own value. * @param field * @return */ @Override protected <T> String getInputPlaceholderAttribute(FormField<T> field) { return getInnerRenderer().getInputPlaceholderAttribute(field); } @Override protected <T> String renderDatePickerScript(FormField<T> field) { return getInnerRenderer().renderDatePickerScript(field); } @Override protected <T> String renderTextFieldInternal(FormField<T> field) { return getInnerRenderer().renderTextFieldInternal(field); } // --- Various field types - begin --- @Override protected <T> String renderFieldButton(FormField<T> field) { return getInnerRenderer().renderFieldButton(field); } @Override protected <T> String renderFieldHidden(FormField<T> field) { return getInnerRenderer().renderFieldHidden(field); } @Override protected <T> String renderFieldText(FormField<T> field) { return getInnerRenderer().renderFieldText(field); } @Override protected <T> String renderFieldColor(FormField<T> field) { return getInnerRenderer().renderFieldColor(field); } @Override protected <T> String renderFieldDate(FormField<T> field) { return getInnerRenderer().renderFieldDate(field); } @Override protected <T> String renderFieldDateTime(FormField<T> field) { return getInnerRenderer().renderFieldDateTime(field); } @Override protected <T> String renderFieldDateTimeLocal(FormField<T> field) { return getInnerRenderer().renderFieldDateTimeLocal(field); } @Override protected <T> String renderFieldTime(FormField<T> field) { return getInnerRenderer().renderFieldTime(field); } @Override protected <T> String renderFieldEmail(FormField<T> field) { return getInnerRenderer().renderFieldEmail(field); } @Override protected <T> String renderFieldMonth(FormField<T> field) { return getInnerRenderer().renderFieldMonth(field); } @Override protected <T> String renderFieldNumber(FormField<T> field) { return getInnerRenderer().renderFieldNumber(field); } @Override protected <T> String renderFieldRange(FormField<T> field) { return getInnerRenderer().renderFieldRange(field); } @Override protected <T> String renderFieldSearch(FormField<T> field) { return getInnerRenderer().renderFieldSearch(field); } @Override protected <T> String renderFieldTel(FormField<T> field) { return getInnerRenderer().renderFieldTel(field); } @Override protected <T> String renderFieldUrl(FormField<T> field) { return getInnerRenderer().renderFieldUrl(field); } @Override protected <T> String renderFieldWeek(FormField<T> field) { return getInnerRenderer().renderFieldWeek(field); } @Override protected <T> String renderFieldTextArea(FormField<T> field) { return getInnerRenderer().renderFieldTextArea(field); } @Override protected <T> String renderFieldCheckbox(FormField<T> field) { return getInnerRenderer().renderFieldCheckbox(field); } @Override protected <T> String renderFieldPassword(FormField<T> field) { return getInnerRenderer().renderFieldPassword(field); } @Override protected <T> String renderFieldFileUpload(FormField<T> field) { return getInnerRenderer().renderFieldFileUpload(field); } @Override protected <T> String renderFieldDatePicker(FormField<T> field) { return getInnerRenderer().renderFieldDatePicker(field); } @Override protected <T> String renderFieldDropDownChoice(FormField<T> field) { return getInnerRenderer().renderFieldDropDownChoice(field); } @Override protected <T> String renderFieldMultipleCheckbox(FormField<T> field) { return getInnerRenderer().renderFieldMultipleCheckbox(field); } @Override protected <T> String renderFieldRadioChoice(FormField<T> field) { return getInnerRenderer().renderFieldRadioChoice(field); } // --- /Various field types - end --- @Override protected <T> String getLabelText(FormElement<T> element) { return getInnerRenderer().getLabelText(element); } @Override protected <T> String getRequiredMark(FormElement<T> element) { return getInnerRenderer().getRequiredMark(element); } protected FormRenderer getInnerRenderer() { return inner; } }