[jboss-svn-commits] JBL Code SVN: r29789 - in labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main: resources and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 23 10:31:38 EDT 2009


Author: lkrzyzanek
Date: 2009-10-23 10:31:37 -0400 (Fri, 23 Oct 2009)
New Revision: 29789

Added:
   labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiPlugin.java
   labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/spring.xml
Modified:
   labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiMacro.java
   labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/plugin.xml
Log:
Added WikiPlugin - plugin base class
Changed macro to BaseMacro.
Added spring config.

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiMacro.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiMacro.java	2009-10-23 14:12:46 UTC (rev 29788)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiMacro.java	2009-10-23 14:31:37 UTC (rev 29789)
@@ -21,29 +21,58 @@
  */
 package org.jboss.labs.clearspace.plugin.wiki;
 
-import java.util.Map;
+import java.io.StringWriter;
 
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
 import ys.wikiparser.WikiParser;
 
-import com.jivesoftware.base.plugin.Macro;
-import com.jivesoftware.base.plugin.MacroContext;
+import com.jivesoftware.base.wiki.HtmlWikiConvertor;
+import com.jivesoftware.base.wiki.JiveHtmlElement;
+import com.jivesoftware.community.renderer.BaseMacro;
+import com.jivesoftware.community.renderer.RenderContext;
+import com.jivesoftware.community.renderer.RenderType;
+import com.jivesoftware.community.renderer.annotations.MacroTagName;
+import com.jivesoftware.community.renderer.annotations.RenderTypes;
+import com.jivesoftware.community.renderer.annotations.SingleTagMacro;
+import com.jivesoftware.community.renderer.impl.v2.JAXPUtils;
+import com.jivesoftware.util.StringUtils;
 
 /**
  * Macro for Wiki markup
  * 
  * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
  */
-public class WikiMacro implements Macro {
+ at RenderTypes(value = { RenderType.BODY, RenderType.DOCUMENT_BODY,
+    RenderType.COMMENT_BODY })
+ at MacroTagName(value = "Wiki")
+ at SingleTagMacro(value = false)
+public class WikiMacro extends BaseMacro {
 
-  public String render(String textBody, Map<String, String> parameters,
-      MacroContext macroContext) {
+  private boolean showInRTE = true;
 
-    // Start building the return value.
-    StringBuilder wikiBox = new StringBuilder();
-    // wikiBox.append("<div class=\"wiki\">");
+  private boolean button = false;
 
-    String xhmtlBody = WikiParser.renderXHTML(textBody);
+  private String icon;
 
+  public void execute(Element element, RenderContext renderContext) {
+    // String elementAsString = JAXPUtils.toXmlString(element);
+    String elementAsString = element.getTextContent();
+    System.out.println("Element: " + elementAsString);
+
+    String xhtmlBody = WikiParser.renderXHTML(elementAsString);
+
     // Jive impl.:
     // WikiLexer lexer = new WikiLexer(textBody);
     // org.jdom.Element element = lexer.parse();
@@ -51,13 +80,68 @@
     // builder.build();
     // String xhmtlBody = HtmlRenderUtils.toString(element);
 
-    // Append the text the user typed.
-    wikiBox.append(xhmtlBody);
+    xhtmlBody = StringUtils.escapeEntitiesInXmlString(xhtmlBody);
 
-    // Append the closing tag.
-    // wikiBox.append("</div>");
+    NodeList parsedNodes = JAXPUtils.toXmlNodeList(xhtmlBody);
 
-    return wikiBox.toString();
+    JAXPUtils.replace(element, parsedNodes);
   }
 
+  public static String xmlToString(Node node) {
+    try {
+      Source source = new DOMSource(node);
+      StringWriter stringWriter = new StringWriter();
+      Result result = new StreamResult(stringWriter);
+      TransformerFactory factory = TransformerFactory.newInstance();
+      Transformer transformer = factory.newTransformer();
+      transformer.transform(source, result);
+      return stringWriter.getBuffer().toString();
+    } catch (TransformerConfigurationException e) {
+      e.printStackTrace();
+    } catch (TransformerException e) {
+      e.printStackTrace();
+    }
+    return null;
+  }
+
+  protected String convertToText(Element element) {
+    StringBuilder value = new StringBuilder();
+    NodeList childNodes = element.getChildNodes();
+    for (int i = 0; i < childNodes.getLength(); i++) {
+      org.jdom.Element jdomElement = JAXPUtils.convertToJDomElement(childNodes
+          .item(i), JiveHtmlElement.Span);
+      HtmlWikiConvertor convertor = new HtmlWikiConvertor(jdomElement);
+      value.append(convertor.parse());
+    }
+    return value.toString();
+  }
+
+  public boolean isShowSettings() {
+    return false;
+  }
+
+  public void setShowInRTE(boolean showInRTE) {
+    this.showInRTE = showInRTE;
+  }
+
+  public boolean isShowInRTE() {
+    return showInRTE;
+  }
+
+  public void setButton(boolean button) {
+    this.button = button;
+  }
+
+  public boolean isButton() {
+    return button;
+  }
+
+  public void setIcon(String icon) {
+    this.icon = icon;
+  }
+
+  public String getIcon() {
+    return icon;
+  }
+
 }

Added: labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiPlugin.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiPlugin.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiPlugin.java	2009-10-23 14:31:37 UTC (rev 29789)
@@ -0,0 +1,59 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2009  Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.clearspace.plugin.wiki;
+
+import com.jivesoftware.base.plugin.Plugin;
+import com.jivesoftware.community.renderer.RenderManager;
+
+/**
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class WikiPlugin implements Plugin<WikiPlugin> {
+
+  private RenderManager renderManager;
+
+  private WikiMacro wikiMacro;
+
+  public void init() {
+    renderManager.addRenderPlugin(wikiMacro);
+  }
+
+  public void destroy() {
+  }
+
+  public RenderManager getRenderManager() {
+    return renderManager;
+  }
+
+  public void setRenderManager(RenderManager renderManager) {
+    this.renderManager = renderManager;
+  }
+
+  public WikiMacro getWikiMacro() {
+    return wikiMacro;
+  }
+
+  public void setWikiMacro(WikiMacro wikiMacro) {
+    this.wikiMacro = wikiMacro;
+  }
+
+}


Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiPlugin.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/plugin.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/plugin.xml	2009-10-23 14:12:46 UTC (rev 29788)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/plugin.xml	2009-10-23 14:31:37 UTC (rev 29789)
@@ -1,24 +1,24 @@
 <plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://www.jivesoftware.com/schemas/clearspace/2_5/plugin.xsd">
-  <name>Wiki</name>
+  <name>wiki</name>
   <description>Wiki syntax support</description>
   <author>JBoss.org</author>
   <version>1.0.0</version>
   <minServerVersion>2.5.0</minServerVersion>
 
-  <!-- Plugin class 
-  <class></class>
-  -->
+  <!-- Plugin class  -->
+  <class>org.jboss.labs.clearspace.plugin.wiki.WikiPlugin</class>
+
   <!--
     For using Wiki conversion for incoming mails set this property:
     property
     checkMail.integrationProvider.class=org.jboss.labs.clearspace.plugin.wiki.WikiIntegrationProvider
   -->
 
-
+<!-- 
   <macro name="Wiki" type="text" hasBody="true"
     class="org.jboss.labs.clearspace.plugin.wiki.WikiMacro" showInRTE="true">
   </macro>
+ -->
 
-
 </plugin>

Added: labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/spring.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/spring.xml	2009-10-23 14:31:37 UTC (rev 29789)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
+  xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
+
+
+  <bean id="wikiPlugin" class="org.jboss.labs.clearspace.plugin.wiki.WikiPlugin">
+    <property name="renderManager" ref="globalRenderManager" />
+    <property name="wikiMacro" ref="wikiMacro" />
+  </bean>
+
+  <bean id="wikiMacro" class="org.jboss.labs.clearspace.plugin.wiki.WikiMacro">
+    <property name="button" value="false" />
+    <!-- 
+    <property name="icon" value="/images/emoticons/silly.gif" />
+     -->
+  </bean>
+
+</beans>


Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/resources/spring.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain



More information about the jboss-svn-commits mailing list