[jboss-svn-commits] JBL Code SVN: r26788 - labs/jbossforums/branches/forums120P26/forums/src/main/org/jboss/portlet/forums/ui.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat May 30 11:52:03 EDT 2009
Author: sviluppatorefico
Date: 2009-05-30 11:52:02 -0400 (Sat, 30 May 2009)
New Revision: 26788
Modified:
labs/jbossforums/branches/forums120P26/forums/src/main/org/jboss/portlet/forums/ui/PortalUtil.java
Log:
Modified: labs/jbossforums/branches/forums120P26/forums/src/main/org/jboss/portlet/forums/ui/PortalUtil.java
===================================================================
--- labs/jbossforums/branches/forums120P26/forums/src/main/org/jboss/portlet/forums/ui/PortalUtil.java 2009-05-29 21:51:38 UTC (rev 26787)
+++ labs/jbossforums/branches/forums120P26/forums/src/main/org/jboss/portlet/forums/ui/PortalUtil.java 2009-05-30 15:52:02 UTC (rev 26788)
@@ -22,16 +22,19 @@
******************************************************************************/
package org.jboss.portlet.forums.ui;
+import java.io.StringWriter;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
+import java.util.ResourceBundle;
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
+import javax.faces.component.UIViewRoot;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.naming.InitialContext;
@@ -41,6 +44,7 @@
import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.jboss.portal.core.modules.ModuleConstants;
@@ -50,6 +54,9 @@
import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portlet.forums.ForumsConstants;
import org.jboss.portlet.forums.feeds.FeedConstants;
+import org.jboss.portlet.forums.format.render.bbcodehtml.ToHTMLConfig;
+import org.jboss.portlet.forums.format.render.bbcodehtml.ToHTMLRenderer;
+import org.jboss.portlet.forums.format.util.CLLoader;
import org.jboss.portlet.forums.helper.TempFileBinding;
import org.jboss.portlet.forums.impl.MessageImpl;
import org.jboss.portlet.forums.impl.PollImpl;
@@ -69,11 +76,34 @@
*/
public class PortalUtil
{
+ private static CLLoader loader = new CLLoader("template");
private static Logger log = Logger.getLogger(PortalUtil.class);
private static SimpleDateFormat sdfForLastLoginDate;
+ private static User user = new User()
+ {
+ public Object getId()
+ {
+ return null;
+ }
+
+ public void updatePassword(String string)
+ {
+ }
+
+ public boolean validatePassword(String string)
+ {
+ return false;
+ }
+
+ public String getUserName()
+ {
+ return null;
+ }
+ };
+
private static User userNA = new User()
{
{
@@ -614,11 +644,112 @@
return poster;
}
+
+ /**
+ * Method used for parsing bbcode and return properly formated text of
+ * message.
+ *
+ * @return
+ */
+ public static String formatMessage(String text, boolean allowHTML)
+ {
+ try
+ {
+ Object req = FacesContext.getCurrentInstance().getExternalContext()
+ .getRequest();
+
+ if (allowHTML)
+ {
+ getToHTMLRenderer(req).getConfig().setFilterMode(
+ ToHTMLConfig.FILTER_MODE_ALWAYS_PRINT);
+ getToHTMLRenderer(req).getConfig().setOuputMode(
+ ToHTMLConfig.OUTPUT_MODE_REMOVE);
+ getToHTMLRenderer(req).getConfig().setMaxTextWidth(
+ Integer.MAX_VALUE);
+ } else
+ {
+ getToHTMLRenderer(req).getConfig().setFilterMode(
+ ToHTMLConfig.FILTER_MODE_NEVER_PRINT);
+ getToHTMLRenderer(req).getConfig().setOuputMode(
+ ToHTMLConfig.OUTPUT_MODE_REMOVE);
+ getToHTMLRenderer(req).getConfig().setMaxTextWidth(
+ Integer.MAX_VALUE);
+ }
+ return formatTitle(req, text);
+ } catch (Exception e)
+ {
+ // Now if something goes wrong it just returns message with bbcode.
+ return text;
+ }
+
+ }
+
/**
*
+ * @param text
* @return
*/
+ public static String formatTitle(Object req, String text)
+ {
+
+ StringWriter stringWriter = new StringWriter();
+ getToHTMLRenderer(req).setWriter(stringWriter);
+ getToHTMLRenderer(req).render(text.toCharArray(), 0, text.length());
+ getToHTMLRenderer(req).getConfig().setMaxTextWidth(Integer.MAX_VALUE);
+ return stringWriter.toString();
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ private static ToHTMLRenderer getToHTMLRenderer(Object req)
+ {
+ ToHTMLRenderer renderer = null;
+ PortletRequest porReq = null;
+ HttpServletRequest serReq = null;
+ if (req instanceof PortletRequest)
+ {
+ porReq = (PortletRequest) req;
+ renderer = (ToHTMLRenderer) porReq.getPortletSession()
+ .getAttribute("RENDERER");
+ } else
+ {
+ serReq = (HttpServletRequest) req;
+ // TODO: GETTING RENDERER FROM APPLICATION SCOPE ATTRIBUTE
+ }
+ if (renderer == null)
+ {
+
+ // Getting ResourceBundle with current Locale
+ FacesContext ctx = FacesContext.getCurrentInstance();
+ UIViewRoot uiRoot = ctx.getViewRoot();
+ Locale locale = uiRoot.getLocale();
+ ClassLoader ldr = Thread.currentThread().getContextClassLoader();
+ ResourceBundle bundle = ResourceBundle.getBundle("ResourceJSF",
+ locale, ldr);
+
+ // Create the HTMLRenderer for BBCode
+ ToHTMLConfig config = new ToHTMLConfig();
+ config.setLoader(loader);
+ renderer = new ToHTMLRenderer(config, bundle);
+ if (porReq != null)
+ {
+ porReq.getPortletSession().setAttribute("RENDERER", renderer);
+ } else if (serReq != null)
+ {
+ // TODO: SETTING RENDERER IN APPLICATION SCOPE ATTRIBUTE
+ }
+ }
+ return renderer;
+ }
+
+ /**
+ *
+ * @return
+ */
public static Poll createPoll()
{
Poll poll = new PollImpl();
More information about the jboss-svn-commits
mailing list