package fr.openwide.core.wicket.more.markup.html.bootstrap.label.behavior;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import fr.openwide.core.wicket.behavior.ClassAttributeAppender;
import fr.openwide.core.wicket.more.markup.html.bootstrap.label.model.IBootstrapColor;
public class BootstrapColorBehavior extends ClassAttributeAppender {
private static final long serialVersionUID = 7272137227196691195L;
public static BootstrapColorBehavior label(IModel<IBootstrapColor> colorModel) {
return new BootstrapColorBehavior("label label-", colorModel);
}
public static BootstrapColorBehavior alert(IModel<IBootstrapColor> colorModel) {
return new BootstrapColorBehavior("alert alert-", colorModel);
}
public static BootstrapColorBehavior bg(IModel<IBootstrapColor> colorModel) {
return new BootstrapColorBehavior("bg-", colorModel);
}
public static BootstrapColorBehavior btn(IModel<IBootstrapColor> colorModel) {
return new BootstrapColorBehavior("btn-", colorModel);
}
public BootstrapColorBehavior(final String cssClassPrefix, final IModel<IBootstrapColor> colorModel) {
super(new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;
@Override
public String getObject() {
IBootstrapColor color = colorModel.getObject();
if (color == null) {
return null;
} else {
return cssClassPrefix + color.getCssClassSuffix();
}
}
@Override
public void detach() {
super.detach();
colorModel.detach();
}
});
}
}