package fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstraphoverdropdown; 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.wicketstuff.wiquery.core.javascript.JsStatement; import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.util.JQueryAbstractBehavior; public class BootstrapHoverDropdownBehavior extends JQueryAbstractBehavior { private static final long serialVersionUID = -2996190309864839178L; private static final String DROPDOWN_HOVER = "dropdownHover"; public static final String DEFAULT_SELECTOR = "[data-hover=\"dropdown\"]"; private final String selector; private final BootstrapHoverDropdownOptions options; public BootstrapHoverDropdownBehavior() { this(DEFAULT_SELECTOR, new BootstrapHoverDropdownOptions()); } public BootstrapHoverDropdownBehavior(BootstrapHoverDropdownOptions options) { this(DEFAULT_SELECTOR, options); } public BootstrapHoverDropdownBehavior(String selector, BootstrapHoverDropdownOptions options) { super(); this.selector = selector; this.options = options; } @Override public void renderHead(Component component, IHeaderResponse response) { response.render(JavaScriptHeaderItem.forReference(BootstrapHoverDropdownJavaScriptResourceReference.get())); response.render(OnDomReadyHeaderItem.forScript(statement().render())); } public JsStatement statement() { return new JsStatement().$(getComponent(), selector).chain(DROPDOWN_HOVER, options.getJavaScriptOptions()); } }