package fr.openwide.core.wicket.more.markup.repeater.table.builder.action;
import org.apache.wicket.model.IModel;
import fr.openwide.core.wicket.more.link.descriptor.AbstractDynamicBookmarkableLink;
import fr.openwide.core.wicket.more.link.descriptor.generator.ILinkGenerator;
import fr.openwide.core.wicket.more.link.descriptor.mapper.ILinkDescriptorMapper;
import fr.openwide.core.wicket.more.markup.html.bootstrap.label.renderer.BootstrapRenderer;
import fr.openwide.core.wicket.more.markup.html.factory.ComponentFactories;
public class ActionColumnLinkBuilder<T>
extends AbstractActionColumnElementBuilder<T, AbstractDynamicBookmarkableLink, ActionColumnLinkBuilder<T>> {
private static final long serialVersionUID = 1L;
private boolean hideIfInvalid = false;
public ActionColumnLinkBuilder(BootstrapRenderer<? super T> renderer,
ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<T>> mapper) {
super(renderer, ComponentFactories.fromLinkDescriptorMapper(mapper));
}
@Override
protected void decorateLink(AbstractDynamicBookmarkableLink link, IModel<T> rowModel) {
super.decorateLink(link, rowModel);
if (hideIfInvalid) {
link.hideIfInvalid();
}
}
@Override
public void detach() {
// nothing to do
}
public ActionColumnLinkBuilder<T> hideIfInvalid() {
this.hideIfInvalid = true;
return thisAsF();
}
}