package lt.inventi.wicket.component.breadcrumb; import org.apache.wicket.Component; import org.apache.wicket.Page; import org.apache.wicket.request.component.IRequestablePage; import org.apache.wicket.request.mapper.parameter.PageParameters; abstract class BreadcrumbsRedirectHelper { private BreadcrumbsRedirectHelper() { // static utils } static void setResponseToPreviousPage(Component component) { Page page = component.getPage(); String optionalTrailId = BreadcrumbPageParameters.getOptionalTrailId(page.getPageParameters()); Breadcrumb previousBreadcrumb = BreadcrumbTrailHistory.getLastBreadcrumbFor(optionalTrailId); if (previousBreadcrumb == null) { component.getRequestCycle().setResponsePage(page); } else { component.getRequestCycle().scheduleRequestHandlerAfterCurrent(previousBreadcrumb.getHandler()); } } static void setNextResponsePage(Component component, IRequestablePage nextPage) { Page page = component.getPage(); BreadcrumbPageParameters.setTrailTo(nextPage.getPageParameters(), page); component.getRequestCycle().setResponsePage(nextPage); } static void setNextResponsePage(Component component, Class<? extends IRequestablePage> nextPageType) { setNextResponsePage(component, nextPageType, new PageParameters()); } static void setNextResponsePage(Component component, Class<? extends IRequestablePage> nextPageType, PageParameters params) { Page page = component.getPage(); BreadcrumbPageParameters.setTrailTo(params, page); component.getRequestCycle().setResponsePage(nextPageType, params); } }