public Iterator<Page> getChildPages() { return page.listChildren(new PageFilter()); }
private List<NavigationPageItem> createChildItems(final Page parentPage, final ItemCreator itemCreator) { List<NavigationPageItem> items = new ArrayList<>(); Iterator<Page> childPages = parentPage.listChildren(new PageFilter(false, false)); while (childPages.hasNext()) { Page childPage = childPages.next(); NavigationPageItem item = itemCreator.create(childPage); if (item != null) { items.add(item); } } return items; }
/** * Builds the navigation tree for a {@code navigationRoot} page. * * @param navigationRoot the global navigation tree root (start page) * @param subtreeRoot the current sub-tree root (changes depending on the level of recursion) * @return the list of collected navigation trees */ private List<NavigationItem> getItems(NavigationRoot navigationRoot, Page subtreeRoot) { List<NavigationItem> pages = new ArrayList<>(); if (navigationRoot.structureDepth == -1 || getLevel(subtreeRoot) < navigationRoot.structureDepth) { Iterator<Page> it = subtreeRoot.listChildren(new PageFilter()); while (it.hasNext()) { Page page = it.next(); int pageLevel = getLevel(page); int level = pageLevel - navigationRoot.startLevel; List<NavigationItem> children = getItems(navigationRoot, page); boolean isSelected = checkSelected(page); if (skipNavigationRoot) { level = level - 1; } pages.add(new NavigationItemImpl(page, isSelected, request, level, children)); } } return pages; }
if (configPage != null) { referencePages.put(configPage.getPath(), configPage); Iterator<Page> deepChildren = configPage.listChildren(new PageFilter(false, true), true); while (deepChildren.hasNext()) { Page configChildPage = deepChildren.next();
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setContentType(request.getResponseContentType()); ResourceResolver resourceResolver = request.getResourceResolver(); PageManager pageManager = resourceResolver.adaptTo(PageManager.class); Page page = pageManager.getContainingPage(request.getResource()); XMLOutputFactory outputFactory = XMLOutputFactory.newFactory(); try { XMLStreamWriter stream = outputFactory.createXMLStreamWriter(response.getWriter()); stream.writeStartDocument("1.0"); stream.writeStartElement("", "urlset", NS); stream.writeNamespace("", NS); // first do the current page write(page, stream, resourceResolver); for (Iterator<Page> children = page.listChildren(new PageFilter(false, true), true); children.hasNext(); ) { write(children.next(), stream, resourceResolver); } if (damAssetTypes.size() > 0 && damAssetProperty.length() > 0) { for (Resource assetFolder : getAssetFolders(page, resourceResolver)) { writeAssets(stream, assetFolder, resourceResolver); } } stream.writeEndElement(); stream.writeEndDocument(); } catch (XMLStreamException e) { throw new IOException(e); } }
for (Iterator<Page> children = page.listChildren(new PageFilter(false, true), true); children.hasNext();) { write(children.next(), stream, resourceResolver);
private List<NavigationItem> getItems(Page root) { List<NavigationItem> pages = new ArrayList<>(); if (root.getDepth() < structureDepth) { Iterator<Page> it = root.listChildren(new PageFilter()); while (it.hasNext()) { Page page = it.next(); boolean active = currentPage.getPath().equals(page.getPath()) || currentPage.getPath().startsWith(page.getPath() + "/"); String title = page.getNavigationTitle(); if (title == null) { title = page.getTitle(); } List<NavigationItem> children = getItems(page); int level = page.getDepth() - startLevel; Page localizedPage = getLocalizedPage(currentPage, page); if (localizedPage != null) { page = localizedPage; } pages.add(new LanguageNavigationItemImpl(page, active, request, level, children, title)); } } return pages; }