package fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.mask;
import org.apache.wicket.Component;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.util.lang.Args;
import org.wicketstuff.wiquery.core.javascript.JsStatement;
import org.wicketstuff.wiquery.core.javascript.JsUtils;
import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.util.JQueryAbstractBehavior;
public class MaskBehavior extends JQueryAbstractBehavior {
private static final long serialVersionUID = 942354041972092047L;
private static final String MASK = "mask";
private final String maskPattern;
private final MaskOptions options;
public MaskBehavior(String maskPattern) {
this(maskPattern, null);
}
public MaskBehavior(String maskPattern, MaskOptions options) {
Args.notEmpty(maskPattern, "maskPattern");
this.maskPattern = maskPattern;
this.options = options;
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(MaskJavaScriptResourceReference.get()));
response.render(OnDomReadyHeaderItem.forScript(statement().render()));
}
public JsStatement statement() {
if (options != null) {
return new JsStatement().$(getComponent()).chain(MASK, JsUtils.quotes(maskPattern), options.getJavaScriptOptions());
} else {
return new JsStatement().$(getComponent()).chain(MASK, JsUtils.quotes(maskPattern));
}
}
}