@Override public String toString() { return "{PageName value=" + getValue() + "}"; }
@Override public String toString() { return "{PageName value=" + getValue() + "}"; }
/** * Returns the site-relative folder path corresponding to the given page, or * {@code null} if any of the page's ancestors are missing. */ private File getPath(BaseContentEntry<?> entry, EntryStore entryStore) { String parentId = getParentId(entry); if (parentId == null) { return new File(((BasePageEntry<?>) entry).getPageName().getValue()); } BasePageEntry<?> parent = (BasePageEntry<?>) entryStore.getEntry(parentId); if (parent == null) { return null; } return new File(getPath(parent, entryStore), ((BasePageEntry<?>) entry).getPageName().getValue()); } }
/** * Returns the site-relative path to the given entry. */ private String getPath(BaseContentEntry<?> entry, List<BasePageEntry<?>> ancestors) { String name; if (isPage(entry)) { name = ((BasePageEntry<?>) entry).getPageName().getValue(); } else { name = entry.getTitle().getPlainText().replaceAll(" ", "%20"); } String path = "/"; for (BasePageEntry<?> ancestor : ancestors) { path += ancestor.getPageName().getValue() + "/"; } return path + name; }
str = ancestors.get(ancestorIndex).getPageName().getValue() + "/" + str; ancestorIndex--;
@Override public XmlElement renderSubpageLinks(List<BasePageEntry<?>> subpages) { XmlElement div = new XmlElement("div"); div.addText("Subpages (" + subpages.size() + "):"); for (BasePageEntry<?> subpage : subpages) { String href = subpage.getPageName().getValue() + "/index.html"; div.addText(" "); div.addElement(RendererUtils.getHyperLink(href, subpage.getTitle().getPlainText())); } return div; } }
private XmlElement getSideBar(BaseContentEntry<?> entry, EntryStore entryStore) { XmlElement table = new XmlElement("table"); table.addElement(new XmlElement("tr").addElement(new XmlElement("th") .addText("Navigation").setAttribute("align", "left"))); Set<BasePageEntry<?>> pages = Sets.newTreeSet(titleComparator); pages.addAll(entryStore.getTopLevelEntries()); String pathToRoot = getPathToRoot(entry, entryStore); for (BasePageEntry<?> page : pages) { String text = page.getTitle().getPlainText(); if (page.equals(entry)) { table.addElement(new XmlElement("tr").addElement(new XmlElement("td") .addElement(new XmlElement("small").addText(text)))); } else { String href = pathToRoot + page.getPageName().getValue() + "/index.html"; XmlElement link = new XmlElement("a").addText(text) .setAttribute("href", href); table.addElement(new XmlElement("tr").addElement(new XmlElement("td") .addElement(new XmlElement("small").addElement(link)))); } } return table; }
@Override public XmlElement renderAnnouncements( List<AnnouncementEntry> announcements) { XmlElement div = new XmlElement("div"); for (AnnouncementEntry announcement : announcements) { div.addElement(new XmlElement("hr")); XmlElement announceDiv = RendererUtils.getEntryElement(announcement, "blockquote"); XmlElement title = new XmlElement("b"); String href = announcement.getPageName().getValue() + "/index.html"; XmlElement titleLink = new XmlElement("a").addElement( RendererUtils.getTitleElement(announcement)); titleLink.setAttribute("href", href); title.addElement(titleLink); announceDiv.addElement(title).addElement(new XmlElement("br")); XmlElement info = new XmlElement("small"); XmlElement author = RendererUtils.getAuthorElement(announcement); info.addText("posted by ").addElement(author); XmlElement updated = RendererUtils.getUpdatedElement(announcement); info.addText(" on ").addElement(updated); announceDiv.addElement(info).addElement(new XmlElement("br")); XmlElement mainHtml = RendererUtils.getXhtmlContentElement(announcement); announceDiv.addElement(mainHtml); div.addElement(announceDiv); } return div; } }