[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