package fr.openwide.core.wicket.more.markup.repeater.table.builder.state;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.model.IModel;
import com.google.common.base.Function;
import fr.openwide.core.commons.util.binding.AbstractCoreBinding;
import fr.openwide.core.jpa.more.business.sort.ISort;
import fr.openwide.core.wicket.more.condition.Condition;
import fr.openwide.core.wicket.more.link.descriptor.factory.LinkGeneratorFactory;
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.sort.ISortIconStyle;
import fr.openwide.core.wicket.more.markup.html.sort.TableSortLink.CycleMode;
import fr.openwide.core.wicket.more.rendering.Renderer;
public interface IAddedLabelColumnState<T, S extends ISort<?>> extends IAddedCoreColumnState<T, S> {
@Override
IAddedLabelColumnState<T, S> when(Condition condition);
@Override
IAddedLabelColumnState<T, S> withClass(String cssClass);
@Override
IAddedLabelColumnState<T, S> withSort(S sort);
@Override
IAddedLabelColumnState<T, S> withSort(S sort, ISortIconStyle sortIconStyle);
@Override
IAddedLabelColumnState<T, S> withSort(S sort, ISortIconStyle sortIconStyle, CycleMode cycleMode);
IAddedLabelColumnState<T, S> multiline();
IAddedLabelColumnState<T, S> showPlaceholder();
IAddedLabelColumnState<T, S> showPlaceholder(IModel<String> placeholderModel);
IAddedLabelColumnState<T, S> withTooltip(Renderer<? super T> tooltipRenderer);
<C> IAddedLabelColumnState<T, S> withTooltip(Function<? super T, C> function, Renderer<? super C> renderer);
/**
* @deprecated Use {@link #withLink(ILinkDescriptorMapper)} instead.
*/
@Deprecated
IAddedLabelColumnState<T, S> withLink(LinkGeneratorFactory<T> linkGeneratorFactory);
/**
* @deprecated Use {@link #withLink(AbstractCoreBinding, ILinkDescriptorMapper)} instead.
*/
@Deprecated
<C> IAddedLabelColumnState<T, S> withLink(AbstractCoreBinding<? super T, C> binding, LinkGeneratorFactory<C> linkGeneratorFactory);
/**
* @deprecated Use {@link #withSideLink(ILinkDescriptorMapper)} instead.
*/
@Deprecated
IAddedLabelColumnState<T, S> withSideLink(LinkGeneratorFactory<T> linkGeneratorFactory);
/**
* @deprecated Use {@link #withSideLink(AbstractCoreBinding, ILinkDescriptorMapper)} instead.
*/
@Deprecated
<C> IAddedLabelColumnState<T, S> withSideLink(AbstractCoreBinding<? super T, C> binding, LinkGeneratorFactory<C> linkGeneratorFactory);
IAddedLabelColumnState<T, S> withLink(ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<T>> linkGeneratorMapper);
<C> IAddedLabelColumnState<T, S> withLink(Function<? super T, C> binding, ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<C>> linkGeneratorMapper);
<C> IAddedLabelColumnState<T, S> withLink(AbstractCoreBinding<? super T, C> binding, ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<C>> linkGeneratorMapper);
IAddedLabelColumnState<T, S> withSideLink(ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<T>> linkGeneratorMapper);
<C> IAddedLabelColumnState<T, S> withSideLink(Function<? super T, C> binding, ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<C>> linkGeneratorMapper);
<C> IAddedLabelColumnState<T, S> withSideLink(AbstractCoreBinding<? super T, C> binding, ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<C>> linkGeneratorMapper);
/**
* @deprecated This is the default behavior, calling this method is no longer needed.
*/
IAddedLabelColumnState<T, S> disableIfInvalid();
IAddedLabelColumnState<T, S> hideIfInvalid();
IAddedLabelColumnState<T, S> linkBehavior(Behavior linkBehavior);
IAddedLabelColumnState<T, S> targetBlank();
}