/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.seam.wiki.core.feeds; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.RaiseEvent; import org.jboss.seam.wiki.core.model.WikiDocument; import org.jboss.seam.wiki.core.model.WikiDocumentFeedEntry; @Name("wikiDocumentFeedEntryManager") public class WikiDocumentFeedEntryManager extends FeedEntryManager<WikiDocument, WikiDocumentFeedEntry> { @RaiseEvent("FeedEntry.created") public WikiDocumentFeedEntry createFeedEntry(WikiDocument document) { WikiDocumentFeedEntry fe = new WikiDocumentFeedEntry(); fe.setLink(wikiURLRenderer.renderURL(document, true)); fe.setTitle(getFeedEntryTitle(document)); fe.setAuthor(document.getCreatedBy().getFullname()); fe.setUpdatedDate(fe.getPublishedDate()); // Do NOT use text/html, the fabulous Sun "Rome" software will // render type="HTML" (uppercase!) which kills the Firefox feed renderer! fe.setDescriptionType("html"); String descriptionValue = ""; if (document.macroPresent(WikiDocument.MACRO_DISABLE_CONTENT_MARKUP)) { descriptionValue = renderPlainText(document.getFeedDescription()); } else { descriptionValue = renderWikiText(document.getAreaNumber(), document.getFeedDescription()); } fe.setDescriptionValue(descriptionValue); fe.setDocument(document); return fe; } @RaiseEvent("FeedEntry.updated") public void updateFeedEntry(WikiDocumentFeedEntry fe, WikiDocument document) { fe.setLink(wikiURLRenderer.renderURL(document, true)); fe.setTitle(getFeedEntryTitle(document)); fe.setAuthor(document.getCreatedBy().getFullname()); fe.setDescriptionValue(renderWikiText(document.getAreaNumber(), document.getFeedDescription())); } public String getFeedEntryTitle(WikiDocument document) { return document.getName(); } }