package fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.listfilter;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.wicketstuff.wiquery.core.javascript.JsQuery;
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 ListFilterBehavior extends JQueryAbstractBehavior {
private static final long serialVersionUID = 7238632559473294644L;
private static final String LIST_FILTER = "listFilter";
private ListFilterOptions options;
public ListFilterBehavior() {
this(new ListFilterOptions());
}
public ListFilterBehavior(ListFilterOptions options) {
super();
this.options = options;
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(ListFilterJavaScriptResourceReference.get()));
response.render(CssHeaderItem.forReference(ListFilterLessCssResourceReference.get()));
response.render(OnDomReadyHeaderItem.forScript(statement().render()));
}
public JsStatement statement() {
return new JsStatement().$(getComponent()).chain(LIST_FILTER, JsUtils.quotes("init"), options.getJavaScriptOptions());
}
public JsStatement setEnabled(boolean enabled) {
return new JsQuery(getComponent()).$().chain(LIST_FILTER, JsUtils.quotes("setEnabled"), Boolean.toString(enabled));
}
public void setEnabled(AjaxRequestTarget ajaxRequestTarget, boolean enabled) {
ajaxRequestTarget.appendJavaScript(this.setEnabled(enabled).render().toString());
}
}