[jboss-svn-commits] JBL Code SVN: r29812 - labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 26 10:33:18 EDT 2009


Author: lkrzyzanek
Date: 2009-10-26 10:33:17 -0400 (Mon, 26 Oct 2009)
New Revision: 29812

Modified:
   labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiMacro.java
Log:
Changed implementation to built-in CS Wiki syntax

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-26 14:30:19 UTC (rev 29811)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-wiki/trunk/src/main/java/org/jboss/labs/clearspace/plugin/wiki/WikiMacro.java	2009-10-26 14:33:17 UTC (rev 29812)
@@ -21,31 +21,19 @@
  */
 package org.jboss.labs.clearspace.plugin.wiki;
 
-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.wiki.HtmlWikiConvertor;
-import com.jivesoftware.base.wiki.JiveHtmlElement;
+import com.jivesoftware.base.wiki.HtmlBuilder;
+import com.jivesoftware.base.wiki.WikiLexer;
 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.HtmlRenderUtils;
 import com.jivesoftware.community.renderer.impl.v2.JAXPUtils;
 import com.jivesoftware.util.StringUtils;
 
@@ -67,53 +55,33 @@
   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 text = convertToOriginalWikiText(element);
+    WikiLexer lexer = new WikiLexer(text);
+    org.jdom.Element htmlNodes = lexer.parse();
 
-    String xhtmlBody = WikiParser.renderXHTML(elementAsString);
-
-    // Jive impl.:
-    // WikiLexer lexer = new WikiLexer(textBody);
-    // org.jdom.Element element = lexer.parse();
-    // HtmlBuilder builder = new HtmlBuilder(element);
-    // builder.build();
-    // String xhmtlBody = HtmlRenderUtils.toString(element);
-
+    HtmlBuilder builder = new HtmlBuilder(htmlNodes);
+    builder.build();
+    String xhtmlBody = HtmlRenderUtils.toString(htmlNodes);
     xhtmlBody = StringUtils.escapeEntitiesInXmlString(xhtmlBody);
 
-    NodeList parsedNodes = JAXPUtils.toXmlNodeList(xhtmlBody);
+    Node parsedParent = JAXPUtils.toXmlNode(xhtmlBody);
 
-    JAXPUtils.replace(element, parsedNodes);
-  }
+    if (parsedParent != null) {
+      NodeList parsedNodes = parsedParent.getChildNodes();
 
-  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();
+      JAXPUtils.replace(element, parsedNodes);
+    } else {
+      Element span = JAXPUtils.createElement("span");
+      span.setTextContent(text);
+      JAXPUtils.replace(element, span);
     }
-    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();
+  @Override
+  public int getOrder() {
+    // very important - we need to ensure to run this macro before other macros
+    // like code, document etc.
+    return -10;
   }
 
   public boolean isShowSettings() {



More information about the jboss-svn-commits mailing list