package fr.openwide.core.showcase.web.application.widgets.component; import org.apache.wicket.Component; import org.apache.wicket.Session; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.ResourceModel; import fr.openwide.core.showcase.core.business.user.model.User; import fr.openwide.core.wicket.behavior.ClassAttributeAppender; import fr.openwide.core.wicket.more.markup.html.feedback.FeedbackUtils; import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.component.AbstractModalPopupPanel; import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.component.DelegatedMarkupPanel; import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.popover.BootstrapPopoverBehavior; import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.popover.BootstrapPopoverOptions; import fr.openwide.core.wicket.more.model.GenericEntityModel; public class ZIndexTestModalPopupPanel extends AbstractModalPopupPanel<Void> { private static final long serialVersionUID = -607521826320376767L; public ZIndexTestModalPopupPanel(String id, IModel<? extends Void> model) { super(id, model); } @Override protected Component createHeader(String wicketId) { DelegatedMarkupPanel header = new DelegatedMarkupPanel(wicketId, ZIndexTestModalPopupPanel.class); return header; } @Override protected Component createBody(String wicketId) { DelegatedMarkupPanel body = new DelegatedMarkupPanel(wicketId, ZIndexTestModalPopupPanel.class); // Actuellement, le popover se retrouve derrière le popup car il n'a pas de z-index et que les modal // ont un z-index par défaut de 150. // Popover WebMarkupContainer popoverInformation = new WebMarkupContainer("popoverInformation"); popoverInformation.setOutputMarkupId(true); body.add(popoverInformation); WebMarkupContainer popoverLabel = new WebMarkupContainer("popoverLabel"); BootstrapPopoverOptions popoverOptions = new BootstrapPopoverOptions(); popoverOptions.setTitleText(new ResourceModel("widgets.modal.zIndexTest.popover.title").getObject()); popoverOptions.setContentComponent(popoverInformation); popoverOptions.setHtml(true); popoverLabel.add(new BootstrapPopoverBehavior(popoverOptions)); popoverLabel.add(new ClassAttributeAppender(Model.of("popover-btn"))); body.add(popoverLabel); body.add(new UserAutocompleteAjaxComponent("autocomplete", new GenericEntityModel<Long, User>(null))); body.add(new AjaxLink<Void>("feedbackTest") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { Session.get().warn(getString("widgets.modal.zIndexTest.feedbackTest.warn")); FeedbackUtils.refreshFeedback(target, getPage()); } }); return body; } @Override protected Component createFooter(String wicketId) { DelegatedMarkupPanel footer = new DelegatedMarkupPanel(wicketId, ZIndexTestModalPopupPanel.class); return footer; } @Override public IModel<String> getCssClassNamesModel() { return null; } }