package fr.openwide.core.wicket.more.markup.html.bootstrap.label.component;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.IModel;
import fr.openwide.core.wicket.behavior.ClassAttributeAppender;
import fr.openwide.core.wicket.more.condition.Condition;
import fr.openwide.core.wicket.more.markup.html.bootstrap.label.behavior.BootstrapColorBehavior;
import fr.openwide.core.wicket.more.markup.html.bootstrap.label.renderer.BootstrapRenderer;
import fr.openwide.core.wicket.more.markup.html.bootstrap.label.renderer.IBootstrapRendererModel;
public class BootstrapBadge<T> extends GenericPanel<T> {
private static final long serialVersionUID = -7040646675697285281L;
public BootstrapBadge(String id, IModel<T> model, final BootstrapRenderer<? super T> renderer) {
super(id, model);
IBootstrapRendererModel labelModel = renderer.asModel(model);
IModel<String> iconCssClassModel = labelModel.getIconCssClassModel();
add(
new WebMarkupContainer("icon")
.add(new ClassAttributeAppender(iconCssClassModel))
);
add(
Condition.modelNotNull(iconCssClassModel).thenShowInternal(), // No icon => No badge
BootstrapColorBehavior.label(labelModel.getColorModel()),
new AttributeAppender("title", labelModel)
);
}
}