package org.nocket.component.modal; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.IModel; import org.nocket.component.button.DMDFormOverlayAjaxButton; @SuppressWarnings("serial") public class ModalPanel extends AbstractModalPanel { private final WebMarkupContainer emptyWebMarkup = new WebMarkupContainer("innerContent"); public ModalPanel(String id, IModel<String> title, DMDModalWindow dmdModalWindow) { super(id, title, dmdModalWindow); Form form = new Form("modalPanelform"); add(form); form.add(new Label("title", title)); DMDFormOverlayAjaxButton closeButton = new DMDFormOverlayAjaxButton("close", form) { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { if (defaultCloserButtonCallback != null) { defaultCloserButtonCallback.onSubmit(target); } super.onSubmit(target, form); } @Override public void onError(AjaxRequestTarget target, Form<?> form) { if (defaultCloserButtonCallback != null) { defaultCloserButtonCallback.onSubmit(target); } super.onError(target, form); } @Override public void onConfigure() { boolean showCloseButton = true; if (defaultCloserButtonCallback != null) { showCloseButton = !defaultCloserButtonCallback.hideCloseButton(); } setVisibilityAllowed(showCloseButton); super.onConfigure(); } }; form.add(closeButton); WebMarkupContainer divModal = new WebMarkupContainer("innerInnerModal") { @Override /** * Austauschen des Panels */ protected void onBeforeRender() { if (content != null) { this.addOrReplace(content); } else { this.addOrReplace(emptyWebMarkup); } super.onBeforeRender(); } }; form.add(divModal); setOutputMarkupId(true); } }