package fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.scrollinviewport;
import org.apache.wicket.Component;
import org.apache.wicket.behavior.Behavior;
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.JsStatement;
public class ScrollInViewportBehavior extends Behavior {
private static final long serialVersionUID = -6068559743555922420L;
private String selector;
private ScrollInViewport scrollInViewport;
public ScrollInViewportBehavior() {
this(null, new ScrollInViewport());
}
public ScrollInViewportBehavior(String selector) {
this(selector, new ScrollInViewport());
}
public ScrollInViewportBehavior(ScrollInViewport scrollInViewport) {
this(null, scrollInViewport);
}
public ScrollInViewportBehavior(String selector, ScrollInViewport scrollInViewport) {
super();
this.selector = selector;
this.scrollInViewport = scrollInViewport;
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(ScrollInViewportResourceReference.get()));
response.render(OnDomReadyHeaderItem.forScript(statement(component).render()));
}
protected JsStatement statement(Component component) {
JsStatement statement = new JsStatement();
if (selector != null) {
statement.$(component, selector);
} else {
statement.$(component);
}
if (scrollInViewport != null) {
statement.chain(scrollInViewport);
}
return statement;
}
}