All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.larmic.butterfaces.component.renderkit.html_basic.text.NumberRenderer Maven / Gradle / Ivy

The newest version!
package de.larmic.butterfaces.component.renderkit.html_basic.text;

import de.larmic.butterfaces.component.html.text.HtmlNumber;
import de.larmic.butterfaces.component.partrenderer.RenderUtils;
import de.larmic.butterfaces.util.StringUtils;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.FacesRenderer;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

@FacesRenderer(componentFamily = HtmlNumber.COMPONENT_FAMILY, rendererType = HtmlNumber.RENDERER_TYPE)
public class NumberRenderer extends AbstractHtmlTagRenderer {

    @Override
    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
        super.encodeBegin(context, component, "butter-component-number");
    }

    @Override
    protected void encodeEnd(HtmlNumber numberComponent, ResponseWriter writer) throws IOException {
        if (!numberComponent.isReadonly()) {
            Map options = new HashMap<>();
            if (StringUtils.isNotEmpty(numberComponent.getMin())) {
                options.put("min", numberComponent.getMin());
            }
            if (StringUtils.isNotEmpty(numberComponent.getMax())) {
                options.put("max", numberComponent.getMax());
            }
            if (StringUtils.isNotEmpty(numberComponent.getStep())) {
                options.put("step", numberComponent.getStep());
            }
            if ( numberComponent.isDisabled()) {
                options.put("disabled", numberComponent.isDisabled() + "");
            }

            RenderUtils.renderJQueryPluginCall(
                    numberComponent.getClientId(),
                    "butterNumberSpinner(" + RenderUtils.createOptionsStringForJQueryPluginCall(options) + ")",
                    writer,
                    numberComponent
            );
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy