package fr.openwide.core.wicket.more.markup.repeater.table.column;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.bindgen.BindingRoot;
import fr.openwide.core.jpa.more.business.sort.ISort;
import fr.openwide.core.wicket.more.markup.html.image.BooleanIcon;
import fr.openwide.core.wicket.more.model.BindingModel;
public class CoreBooleanLabelColumn<T, S extends ISort<?>> extends AbstractCoreColumn<T, S> {
private static final long serialVersionUID = -5344972073351010752L;
private final BindingRoot<? super T, Boolean> binding;
private boolean hideIfNullOrFalse = false;
public CoreBooleanLabelColumn(IModel<?> headerLabelModel, final BindingRoot<? super T, Boolean> binding) {
super(headerLabelModel);
this.binding = binding;
}
@Override
public void populateItem(Item<ICellPopulator<T>> cellItem, String componentId, IModel<T> rowModel) {
cellItem.add(
new CoreBooleanLabelColumnPanel<S>(componentId, BindingModel.of(rowModel, binding)) {
private static final long serialVersionUID = 1L;
@Override
protected BooleanIcon decorate(BooleanIcon booleanIcon) {
return CoreBooleanLabelColumn.this.decorate(booleanIcon);
}
}
);
}
public BooleanIcon decorate(BooleanIcon booleanIcon) {
if (hideIfNullOrFalse) {
booleanIcon.hideIfNullOrFalse();
}
return booleanIcon;
}
public CoreBooleanLabelColumn<T, S> hideIfNullOrFalse() {
this.hideIfNullOrFalse = true;
return this;
}
}