package de.flower.rmt.ui.markup.html.panel; import de.flower.common.ui.panel.BasePanel; import de.flower.common.util.Check; import org.apache.wicket.MarkupContainer; import org.apache.wicket.Session; import org.apache.wicket.feedback.ComponentFeedbackMessageFilter; import org.apache.wicket.feedback.ContainerFeedbackMessageFilter; import org.apache.wicket.feedback.IFeedbackMessageFilter; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.FeedbackPanel; /** * @author flowerrrr */ public class FormFeedbackPanel extends BasePanel { public FormFeedbackPanel(final MarkupContainer parent) { // separate filter to determine visibility of feedback banners. final IFeedbackMessageFilter filter = new ContainerFeedbackMessageFilter(parent); add(new WebMarkupContainer("submitSuccess") { @Override public boolean isVisible() { Form form = Check.notNull(findParent(Form.class)); return isShowSuccessFeedbackPanel() && form.isSubmitted() && !Session.get().getFeedbackMessages().hasMessage(filter); } }); add(new WebMarkupContainer("hasErrors") { @Override public boolean isVisible() { return Session.get().getFeedbackMessages().hasMessage(filter); } }); final FeedbackPanel feedback; // here we filter only for messages that are not handled by any of the subcomponents add(feedback = new FeedbackPanel("feedback", new ComponentFeedbackMessageFilter(parent))); feedback.setOutputMarkupId(true); } protected boolean isShowSuccessFeedbackPanel() { return true; } }