/* * Copyright (C) 2003-2009 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.forum.rendering; import org.exoplatform.container.ExoContainerContext; import org.exoplatform.forum.service.Post; import org.exoplatform.ks.rendering.MarkupRenderingService; import org.exoplatform.ks.rendering.core.SupportedSyntaxes; import org.exoplatform.ks.rendering.spi.MarkupRenderDelegate; /** * @author <a href="mailto:patrice.lamarque@exoplatform.com">Patrice Lamarque</a> * @version $Revision$ */ public class RenderHelper { private MarkupRenderingService markupRenderingService; public RenderHelper() { } /** * Render markup for a forum Post * * @param post * @return */ public String renderPost(Post post) { try { return getMarkupRenderingService().delegateRendering(new PostDelegate(), post); } catch (Exception e) { throw new RenderingException(e); } } static class PostDelegate implements MarkupRenderDelegate<Post> { public String getMarkup(Post post) { return post.getMessage(); } /** * Note: when Forum will support more syntaxes, we should have the resolving logic here */ public String getSyntax(Post target) { return SupportedSyntaxes.bbcode.name(); } } public MarkupRenderingService getMarkupRenderingService() { if (this.markupRenderingService == null) { this.markupRenderingService = (MarkupRenderingService) ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(MarkupRenderingService.class); } return this.markupRenderingService; } public void setMarkupRenderingService(MarkupRenderingService markupRenderingService) { this.markupRenderingService = markupRenderingService; } }