package fr.openwide.core.wicket.more.markup.html.template.component; import java.util.List; import org.apache.wicket.Component; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.IModel; import fr.openwide.core.wicket.markup.html.basic.CoreLabel; import fr.openwide.core.wicket.more.condition.Condition; import fr.openwide.core.wicket.more.markup.html.template.model.BreadCrumbElement; import fr.openwide.core.wicket.more.markup.html.template.model.BreadCrumbMarkupTagRenderingBehavior; public class BreadCrumbListView extends ListView<BreadCrumbElement> { private static final long serialVersionUID = -6354654324654295238L; private final BreadCrumbMarkupTagRenderingBehavior renderingBehavior; private final IModel<String> dividerModel; public BreadCrumbListView(String id, IModel<List<BreadCrumbElement>> breadCrumb, BreadCrumbMarkupTagRenderingBehavior renderingBehavior, IModel<String> dividerModel) { super(id, breadCrumb); this.renderingBehavior = renderingBehavior; this.dividerModel = dividerModel; } @Override protected void populateItem(ListItem<BreadCrumbElement> item) { item.add(new CoreLabel("divider", dividerModel).hideIfEmpty().setVisibilityAllowed(item.getIndex() > 0)); Component breadCrumbLink = item.getModelObject().component("breadCrumbElement", renderingBehavior); item.add(breadCrumbLink); item.add(Condition.componentVisible(breadCrumbLink).thenShow()); } }