Package org.richfaces.renderkit

Source Code of org.richfaces.renderkit.WatermarkRendererBase

package org.richfaces.renderkit;

import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;

import org.richfaces.component.AbstractWatermark;
import org.richfaces.javascript.JSObject;
import org.richfaces.ui.input.InputRendererBase;

@ResourceDependencies({
    @ResourceDependency(name = "base-component.reslib", library = "org.richfaces", target = "head"),
    @ResourceDependency(name = "jquery.watermark.js", target = "head"),
    @ResourceDependency(name = "richfaces.watermark.js", target = "head")
})
public abstract class WatermarkRendererBase extends InputRendererBase {
// ------------------------------ FIELDS ------------------------------

    /**
     * Following defaults are be used by addOptionIfSetAndNotDefault
     */
    public static final Map<String, Object> DEFAULTS;

    public static final String RENDERER_TYPE = "org.richfaces.WatermarkRenderer";

// -------------------------- STATIC METHODS --------------------------

    static {
        Map<String, Object> defaults = new HashMap<String, Object>();
        defaults.put("styleClass", "");
        defaults.put("useNative", true);
        DEFAULTS = Collections.unmodifiableMap(defaults);
    }

    protected void addOptionIfSetAndNotDefault(String optionName, Object value, Map<String, Object> options) {
        if (value != null && !"".equals(value) && !value.equals(DEFAULTS.get(optionName))) {
            options.put(optionName, value);
        }
    }

    protected Map<String, Object> getOptions(FacesContext context, AbstractWatermark watermark) {
        /**
         * Include only attributes that are actually set.
         */
        Map<String, Object> options = new HashMap<String, Object>();
        addOptionIfSetAndNotDefault("styleClass", watermark.getAttributes().get("styleClass"), options);
        addOptionIfSetAndNotDefault("text", getInputValue(context, watermark), options);
        return options;
    }

    protected void writeInitFunction(FacesContext context, UIComponent component) throws IOException {
        AbstractWatermark watermark = (AbstractWatermark) component;
        ResponseWriter writer = context.getResponseWriter();
        String clientId = watermark.getClientId(context);
        final Map<String, Object> options = getOptions(context, watermark);
        options.put("targetId", watermark.getTargetClientId(context));
        writer.writeText(new JSObject("RichFaces.ui.Watermark", clientId, options).toScript(), null);
    }
}
TOP

Related Classes of org.richfaces.renderkit.WatermarkRendererBase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.