/* * 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.international.Messages; import org.jboss.seam.wiki.core.model.WikiComment; import org.jboss.seam.wiki.core.model.WikiCommentFeedEntry; import org.jboss.seam.wiki.core.model.User; @Name("wikiCommentFeedEntryManager") public class WikiCommentFeedEntryManager extends FeedEntryManager<WikiComment, WikiCommentFeedEntry> { @RaiseEvent("FeedEntry.created") public WikiCommentFeedEntry createFeedEntry(WikiComment comment) { WikiCommentFeedEntry fe = new WikiCommentFeedEntry(); fe.setLink(wikiURLRenderer.renderURL(comment, true)); fe.setTitle(getFeedEntryTitle(comment)); fe.setAuthor( comment.getCreatedBy().getFullname() != null && !comment.getCreatedBy().getUsername().equals(User.GUEST_USERNAME) && !comment.getCreatedBy().getUsername().equals(User.ADMIN_USERNAME) ? comment.getCreatedBy().getFullname() : comment.getFromUserName()); 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"); fe.setDescriptionValue(getCommentDescription(comment)); fe.setComment(comment); return fe; } @RaiseEvent("FeedEntry.updated") public void updateFeedEntry(WikiCommentFeedEntry fe, WikiComment comment) { fe.setLink(wikiURLRenderer.renderURL(comment, true)); fe.setTitle(Messages.instance().get("lacewiki.label.comment.FeedEntryTitlePrefix") + " " + comment.getSubject()); fe.setAuthor(comment.getCreatedBy().getFullname() != null ? comment.getCreatedBy().getFullname() : comment.getFromUserName()); fe.setDescriptionValue(getCommentDescription(comment)); } public String getFeedEntryTitle(WikiComment comment) { return Messages.instance().get("lacewiki.label.comment.FeedEntryTitlePrefix") + " " + comment.getSubject(); } private String getCommentDescription(WikiComment comment) { StringBuilder desc = new StringBuilder(); desc.append(Messages.instance().get("lacewiki.msg.comment.FeedIntro")); desc.append(" "); desc.append("<a href=\"").append(wikiURLRenderer.renderURL(comment.getParent())).append("\">"); desc.append("'").append(comment.getParent().getName()).append("'"); desc.append("</a>."); desc.append("<hr/>"); desc.append( comment.isUseWikiText() ? renderWikiText(comment.getAreaNumber(), comment.getContent()) : renderPlainText(comment.getContent()) ); return desc.toString(); } }