br.com.digilabs.wicket.component.meiomask.MeioMaskBehavior.java Source code

Java tutorial

Introduction

Here is the source code for br.com.digilabs.wicket.component.meiomask.MeioMaskBehavior.java

Source

/*
 *  Copyright 2010 inaiat.
 * 
 *  Licensed 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.
 *  under the License.
 */
package br.com.digilabs.wicket.component.meiomask;

import br.com.digilabs.wicket.component.mootools.MootoolsMoreBehavior;
import org.apache.wicket.Component;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.Response;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.resources.JavascriptResourceReference;
import org.apache.wicket.util.string.JavascriptUtils;

/**
 *
 * @author inaiat
 */
public class MeioMaskBehavior extends MootoolsMoreBehavior {

    private static final ResourceReference MEIO_MASK = new JavascriptResourceReference(MeioMaskBehavior.class,
            "meio-mask-min-2.0.1.js");

    private final MaskType maskType;
    private final String options;

    public MeioMaskBehavior(MaskType type) {
        this(type, null);
    }

    public MeioMaskBehavior(MaskType type, String options) {
        this.maskType = type;
        this.options = options;
    }

    @Override
    public void renderHead(IHeaderResponse response) {
        super.renderHead(response);
        response.renderJavascriptReference(MEIO_MASK);
    }

    @Override
    public void onComponentTag(Component component, ComponentTag tag) {
        tag.put("data-meiomask", maskType.getMaskName());

        if (options != null) {
            tag.put("data-meiomask-options", options);
        }
    }

    @Override
    public void onRendered(Component component) {
        super.onRendered(component);
        component.setOutputMarkupId(true);
        Response response = component.getResponse();
        response.write(JavascriptUtils.SCRIPT_OPEN_TAG);
        response.write("$('");
        response.write(component.getMarkupId());
        response.write("').meiomask($('");
        response.write(component.getMarkupId());
        response.write("').get('data-meiomask'), JSON.decode($('");
        response.write(component.getMarkupId());
        response.write("').get('data-meiomask-options')));");
        response.write(JavascriptUtils.SCRIPT_CLOSE_TAG);
    }

}