package lt.inventi.wicket.component.breadcrumb.collapse; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import lt.inventi.wicket.component.breadcrumb.Breadcrumb; import lt.inventi.wicket.component.breadcrumb.IBreadcrumbTargetProvider; class CollapsedDisplayedBreadcrumb implements DisplayedBreadcrumb { private final List<DisplayedBreadcrumb> collapsed; public CollapsedDisplayedBreadcrumb(Iterable<Breadcrumb> crumbs) { if (crumbs == null || !crumbs.iterator().hasNext()) { throw new IllegalArgumentException("Must contain at least one collapsed breadcrumb!"); } List<DisplayedBreadcrumb> result = new ArrayList<DisplayedBreadcrumb>(); for (Breadcrumb b : crumbs) { result.add(new SingleDisplayedBreadcrumb(b.title(), b)); } collapsed = Collections.unmodifiableList(result); } @Override public IModel<String> title() { return Model.of("..."); } @Override public IBreadcrumbTargetProvider targetProvider() { return null; } @Override public boolean shouldEscapeTitle() { return true; } @Override public boolean isCollapsed() { return true; } @Override public List<DisplayedBreadcrumb> collapsedCrumbs() { return collapsed; } }