package de.flower.common.ui.alert;
import org.apache.wicket.model.IModel;
import java.io.Serializable;
/**
* @author flowerrrr
*/
public abstract class AlertMessage implements Serializable {
private IModel<String> messageModel;
private IModel<String> buttonLabelModel;
/**
*
* @param messageModel
* @param buttonLabelModel if null, no link is rendered.
*/
public AlertMessage(final IModel<String> messageModel, IModel<String> buttonLabelModel) {
this.messageModel = messageModel;
this.buttonLabelModel = buttonLabelModel;
}
/**
*
* @param alertMessagePanel
* @return true if message should be dismissed after clicking button.
*/
protected abstract boolean onClick(final AlertMessagePanel alertMessagePanel);
public IModel<String> getMessageModel() {
return messageModel;
}
public void setMessageModel(final IModel<String> messageModel) {
this.messageModel = messageModel;
}
public IModel<String> getButtonLabelModel() {
return buttonLabelModel;
}
protected boolean isVisible(final AlertMessagePanel alertMessagePanel) {
return isVisible();
}
protected boolean isVisible() {
return true;
}
/**
* Returns string identifying this message. Key is used to mark messages as closed
* for the current session. By default returns messageModel.getObject().
* Subclasses can override if messages with same messageModel need to be handled separately.
*
* @return
*/
public String getSessionKey() {
return messageModel.getObject();
}
/**
* Subclasses can override if they want to contribute html markup in the message.
* @return
*/
public boolean getEscapeModelStrings() {
return true;
}
}