package de.flower.common.ui.alert;
import de.flower.common.ui.ajax.event.AjaxEventListener;
import org.apache.wicket.Component;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.feedback.IFeedbackMessageFilter;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
/**
* FeedbackPanel that can render AlertMessages.
*
* @author flowerrrr
*/
public class AlertMessageFeedbackPanel extends FeedbackPanel {
public AlertMessageFeedbackPanel(String id) {
super(id, new IFeedbackMessageFilter() {
@Override
public boolean accept(final FeedbackMessage message) {
return message.getMessage() instanceof AlertMessage;
}
});
setOutputMarkupId(true);
add(new AjaxEventListener(AlertMessage.class));
}
@Override
protected Component newMessageDisplayComponent(final String id, final FeedbackMessage message) {
if (message.getMessage() instanceof AlertMessage) {
AlertMessage alertMessage = (AlertMessage) message.getMessage();
return new AlertMessagePanel(id, alertMessage);
} else {
throw new UnsupportedOperationException("Only alert messages are supported by this feedback panel!");
}
}
}