public static String getCategoryPath(Category category) { String path = ""; int level = category.getPathInTree().size(); if (level > 1) { // Add first 2 oldest ancestors separated by '-' List<Category> ancestors = category.getPathInTree().subList(0, level - 1); String ancestorsPath = ancestors.get(0).getSlug(); if (ancestors.size() > 1) { ancestorsPath += "-" + ancestors.get(1).getSlug(); } path += ancestorsPath + "/"; } // Add current category path += category.getPathInTree().get(level - 1).getSlug(); return path; }
/** * Compares the categories and returns the 'active' class if are the same. * * @param category * @param currentCategory * @return 'active' if categories are the same, otherwise an empty string. */ public static String getActiveClass(Category category, Category currentCategory) { String active = ""; if (currentCategory != null && currentCategory.getPathInTree().contains(category)) { active = "active"; } return active; }
/** Returns */ public static Call getListProductsUrl(SearchResult<Product> search, Category category) { if (search.getCurrentPage() >= search.getTotalPages() - 1) { return null; } // Convert from 0..N-1 to 1..N int nextPage = search.getCurrentPage() + 2; String categorySlug = ""; if (category != null) { categorySlug = category.getSlug(); } return routes.Categories.listProducts(categorySlug, nextPage); }