package fr.openwide.maven.artifact.notifier.web.application.administration.component;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
import fr.openwide.maven.artifact.notifier.core.business.user.model.EmailStatus;
/**
* Container utilisant les icones font-awesome et affichant
* un tick ou une croix selon que le model soit true ou false.
*/
public class EmailStatusIcon extends WebMarkupContainer {
private static final long serialVersionUID = -7046943814231028574L;
private static final String CLASS_ATTRIBUTE = "class";
private static final String TOOLTIP_ATTRIBUTE = "data-original-title";
private static final String SEPARATOR = " ";
private static final String BOOTSTRAP_PENDING_CONFIRM_ICON_CLASS = "fa fa-clock-o";
private static final String BOOTSTRAP_VALIDATED_ICON_CLASS = "fa fa-check";
private static final String BOOTSTRAP_PENDING_DELETE_ICON_CLASS = "fa fa-clock-o";
public EmailStatusIcon(String id, IModel<EmailStatus> statusModel) {
super(id, statusModel);
}
@Override
public void onComponentTag(final ComponentTag tag) {
EmailStatus value = getValue();
if (value != null) {
String iconClass = "";
String tooltipKey = getString("profile.email.status." + value.toString());
if (value == EmailStatus.PENDING_CONFIRM) {
iconClass = BOOTSTRAP_PENDING_CONFIRM_ICON_CLASS;
} else if (value == EmailStatus.PENDING_DELETE) {
iconClass = BOOTSTRAP_PENDING_DELETE_ICON_CLASS;
} else if (value == EmailStatus.VALIDATED) {
iconClass = BOOTSTRAP_VALIDATED_ICON_CLASS;
}
tag.append(CLASS_ATTRIBUTE, iconClass, SEPARATOR);
tag.append(TOOLTIP_ATTRIBUTE, tooltipKey, SEPARATOR);
}
super.onComponentTag(tag);
}
@Override
public boolean isVisible() {
return super.isVisible() && (getValue() != null);
}
private EmailStatus getValue() {
return (EmailStatus) getDefaultModelObject();
}
}