[xwiki-notifications] r10965 - in xwiki-platform/core/trunk/xwiki-rendering: xwiki-rendering-api/src/main/java/org/xwiki/rendering/listener xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer
vmassol (SVN)
notifications at xwiki.org
Tue Jul 1 11:28:55 CEST 2008
Author: vmassol
Date: 2008-07-01 11:28:55 +0200 (Tue, 01 Jul 2008)
New Revision: 10965
Added:
xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/listener/ListenerDelegate.java
xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/WikiModelGeneratorListener.java
xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/XWikiPrinter.java
xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer/
xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer/TexRenderer.java
Log:
XWIKI-2508: Firm up the new rendering module implementation
* Started adding a TeX Renderer based on wikimodel's Tex Serializer implementation.
Added: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/listener/ListenerDelegate.java
===================================================================
--- xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/listener/ListenerDelegate.java (rev 0)
+++ xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/listener/ListenerDelegate.java 2008-07-01 09:28:55 UTC (rev 10965)
@@ -0,0 +1,148 @@
+package org.xwiki.rendering.listener;
+
+import java.util.Map;
+
+public class ListenerDelegate implements Listener
+{
+ private Listener listener;
+
+ public void setWrappedListener(Listener listener)
+ {
+ this.listener = listener;
+ }
+
+ public Listener getWrappedListener()
+ {
+ return this.listener;
+ }
+
+ public void beginDocument()
+ {
+ this.listener.beginDocument();
+ }
+
+ public void endDocument()
+ {
+ this.listener.endDocument();
+ }
+
+ public void beginBold()
+ {
+ this.listener.beginBold();
+ }
+
+ public void beginItalic()
+ {
+ this.listener.beginItalic();
+ }
+
+ public void beginList(ListType listType)
+ {
+ this.listener.beginList(listType);
+ }
+
+ public void beginListItem()
+ {
+ this.listener.beginListItem();
+ }
+
+ public void beginMacroMarker(String name, Map<String, String> parameters, String content)
+ {
+ this.listener.beginMacroMarker(name, parameters, content);
+ }
+
+ public void beginParagraph()
+ {
+ this.listener.beginParagraph();
+ }
+
+ public void beginSection(SectionLevel level)
+ {
+ this.listener.beginSection(level);
+ }
+
+ public void beginXMLElement(String name, Map<String, String> attributes)
+ {
+ this.listener.beginXMLElement(name, attributes);
+ }
+
+ public void endBold()
+ {
+ this.listener.endBold();
+ }
+
+ public void endItalic()
+ {
+ this.listener.endItalic();
+ }
+
+ public void endList(ListType listType)
+ {
+ this.listener.endList(listType);
+ }
+
+ public void endListItem()
+ {
+ this.listener.endListItem();
+ }
+
+ public void endMacroMarker(String name, Map<String, String> parameters, String content)
+ {
+ this.listener.endMacroMarker(name, parameters, content);
+ }
+
+ public void endParagraph()
+ {
+ this.listener.endParagraph();
+ }
+
+ public void endSection(SectionLevel level)
+ {
+ this.listener.endSection(level);
+ }
+
+ public void endXMLElement(String name, Map<String, String> attributes)
+ {
+ this.listener.endXMLElement(name, attributes);
+ }
+
+ public void onEscape(String escapedString)
+ {
+ this.listener.onEscape(escapedString);
+ }
+
+ public void onLineBreak()
+ {
+ this.listener.onLineBreak();
+ }
+
+ public void onLink(Link link)
+ {
+ this.listener.onLink(link);
+ }
+
+ public void onMacro(String name, Map<String, String> parameters, String content)
+ {
+ this.listener.onMacro(name, parameters, content);
+ }
+
+ public void onNewLine()
+ {
+ this.listener.onNewLine();
+ }
+
+ public void onSpace()
+ {
+ this.listener.onSpace();
+ }
+
+ public void onSpecialSymbol(String symbol)
+ {
+ this.listener.onSpecialSymbol(symbol);
+ }
+
+ public void onWord(String word)
+ {
+ this.listener.onWord(word);
+ }
+}
Property changes on: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/listener/ListenerDelegate.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/WikiModelGeneratorListener.java
===================================================================
--- xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/WikiModelGeneratorListener.java (rev 0)
+++ xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/WikiModelGeneratorListener.java 2008-07-01 09:28:55 UTC (rev 10965)
@@ -0,0 +1,186 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.xwiki.rendering.wikimodel.internal;
+
+import java.util.Map;
+
+import org.wikimodel.wem.IWemConstants;
+import org.wikimodel.wem.IWemListener;
+import org.wikimodel.wem.WikiFormat;
+import org.xwiki.rendering.listener.Link;
+import org.xwiki.rendering.listener.ListType;
+import org.xwiki.rendering.listener.Listener;
+import org.xwiki.rendering.listener.SectionLevel;
+
+/**
+ * Map XWiki Listener events on to WikiModel events.
+ *
+ * @version $Id: $
+ * @since 1.5RC1
+ */
+public class WikiModelGeneratorListener implements Listener
+{
+ private IWemListener wikimodelListener;
+
+ public WikiModelGeneratorListener(IWemListener wikimodelListener)
+ {
+ this.wikimodelListener = wikimodelListener;
+ }
+
+ public void beginDocument()
+ {
+ this.wikimodelListener.beginDocument();
+ }
+
+ public void endDocument()
+ {
+ this.wikimodelListener.endDocument();
+ }
+
+ public void beginBold()
+ {
+ this.wikimodelListener.beginFormat(new WikiFormat(IWemConstants.STRONG));
+ }
+
+ public void beginItalic()
+ {
+ this.wikimodelListener.beginFormat(new WikiFormat(IWemConstants.EM));
+ }
+
+ public void beginList(ListType listType)
+ {
+ this.wikimodelListener.beginList(null, false);
+ }
+
+ public void beginListItem()
+ {
+ this.wikimodelListener.beginListItem();
+ }
+
+ public void beginMacroMarker(String name, Map<String, String> parameters, String content)
+ {
+ // Don't do anything since there's no notion of Macro marker in WikiModel and anyway
+ // there's nothing to render for a marker...
+ }
+
+ public void beginParagraph()
+ {
+ this.wikimodelListener.beginParagraph(null);
+ }
+
+ public void beginSection(SectionLevel level)
+ {
+ this.wikimodelListener.beginHeader(level.getAsInt(), null);
+ }
+
+ public void beginXMLElement(String name, Map<String, String> attributes)
+ {
+ // TODO: Find what to do... For now don't render XML elements
+ }
+
+ public void endBold()
+ {
+ this.wikimodelListener.endFormat(new WikiFormat(IWemConstants.STRONG));
+ }
+
+ public void endItalic()
+ {
+ this.wikimodelListener.endFormat(new WikiFormat(IWemConstants.EM));
+ }
+
+ public void endList(ListType listType)
+ {
+ this.wikimodelListener.endList(null, false);
+ }
+
+ public void endListItem()
+ {
+ this.wikimodelListener.endListItem();
+ }
+
+ public void endMacroMarker(String name, Map<String, String> parameters, String content)
+ {
+ // Don't do anything since there's no notion of Macro marker in WikiModel and anyway
+ // there's nothing to render for a marker...
+ }
+
+ public void endParagraph()
+ {
+ this.wikimodelListener.endParagraph(null);
+ }
+
+ public void endSection(SectionLevel level)
+ {
+ this.wikimodelListener.endHeader(level.getAsInt(), null);
+ }
+
+ public void endXMLElement(String name, Map<String, String> attributes)
+ {
+ // TODO: Find what to do... For now don't render XML elements
+ }
+
+ public void onEscape(String escapedString)
+ {
+ this.wikimodelListener.onEscape(escapedString);
+ }
+
+ public void onLineBreak()
+ {
+ this.wikimodelListener.onLineBreak();
+ }
+
+ public void onLink(Link link)
+ {
+ String linkAsString;
+ if (link.getLabel() != null) {
+ linkAsString = link.getLabel();
+ } else {
+ linkAsString = link.getReference();
+ }
+
+ this.wikimodelListener.onReference(linkAsString, false);
+ }
+
+ public void onMacro(String name, Map<String, String> parameters, String content)
+ {
+ // Don't do anything since macros have already been transformed so this method
+ // should not be called.
+ }
+
+ public void onNewLine()
+ {
+ this.wikimodelListener.onNewLine();
+ }
+
+ public void onSpace()
+ {
+ this.wikimodelListener.onSpace(" ");
+ }
+
+ public void onSpecialSymbol(String symbol)
+ {
+ this.wikimodelListener.onSpecialSymbol(symbol);
+ }
+
+ public void onWord(String word)
+ {
+ this.wikimodelListener.onWord(word);
+ }
+}
Property changes on: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/WikiModelGeneratorListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/XWikiPrinter.java
===================================================================
--- xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/XWikiPrinter.java (rev 0)
+++ xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/XWikiPrinter.java 2008-07-01 09:28:55 UTC (rev 10965)
@@ -0,0 +1,25 @@
+package org.xwiki.rendering.wikimodel.internal;
+
+import java.io.PrintWriter;
+
+import org.wikimodel.wem.IWikiPrinter;
+
+public class XWikiPrinter implements IWikiPrinter
+{
+ private PrintWriter writer;
+
+ public XWikiPrinter(PrintWriter writer)
+ {
+ this.writer = writer;
+ }
+
+ public void print(String text)
+ {
+ this.writer.write(text);
+ }
+
+ public void println(String text)
+ {
+ this.writer.write(text + "\n");
+ }
+}
Property changes on: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/internal/XWikiPrinter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer/TexRenderer.java
===================================================================
--- xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer/TexRenderer.java (rev 0)
+++ xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer/TexRenderer.java 2008-07-01 09:28:55 UTC (rev 10965)
@@ -0,0 +1,41 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.xwiki.rendering.wikimodel.renderer;
+
+import java.io.PrintWriter;
+import java.io.Writer;
+
+import org.wikimodel.wem.tex.TexSerializer;
+import org.xwiki.rendering.listener.ListenerDelegate;
+import org.xwiki.rendering.renderer.Renderer;
+import org.xwiki.rendering.wikimodel.internal.WikiModelGeneratorListener;
+import org.xwiki.rendering.wikimodel.internal.XWikiPrinter;
+
+public class TexRenderer extends ListenerDelegate implements Renderer
+{
+ private PrintWriter writer;
+
+ public TexRenderer(Writer writer)
+ {
+ this.writer = new PrintWriter(writer);
+ setWrappedListener(new WikiModelGeneratorListener(
+ new TexSerializer(new XWikiPrinter(this.writer))));
+ }
+}
Property changes on: xwiki-platform/core/trunk/xwiki-rendering/xwiki-rendering-wikimodel/src/main/java/org/xwiki/rendering/wikimodel/renderer/TexRenderer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the notifications
mailing list