[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/engine ...
Christian Bauer
christian at hibernate.org
Thu Apr 5 09:04:14 EDT 2007
User: cbauer
Date: 07/04/05 09:04:14
Modified: examples/wiki/src/main/org/jboss/seam/wiki/core/engine
WikiTextRenderer.java WikiTextParser.java
Log:
Fixed wiki plugin rendering of facelet includes by moving it into ComponentHandler
Revision Changes Path
1.3 +1 -5 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/engine/WikiTextRenderer.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: WikiTextRenderer.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/engine/WikiTextRenderer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- WikiTextRenderer.java 2 Apr 2007 18:25:07 -0000 1.2
+++ WikiTextRenderer.java 5 Apr 2007 13:04:14 -0000 1.3
@@ -1,7 +1,6 @@
package org.jboss.seam.wiki.core.engine;
import java.util.List;
-import java.util.Set;
/**
* Called by the WikiTextParser to render [A Link=>Target] and [<=MacroName].
@@ -14,11 +13,8 @@
public String renderExternalLink(WikiLink externalLink);
public String renderThumbnailImageInlineLink(WikiLink inlineLink);
public String renderFileAttachmentLink(int attachmentNumber, WikiLink attachmentLink);
+ public String renderMacro(String macroName);
public void setAttachmentLinks(List<WikiLink> attachmentLinks);
public void setExternalLinks(List<WikiLink> externalLinks);
- public void setMacroNames(Set<String> macroNames);
-
- public String renderMacro(String macroName);
-
}
1.3 +18 -5 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/engine/WikiTextParser.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: WikiTextParser.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/engine/WikiTextParser.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- WikiTextParser.java 2 Apr 2007 18:25:07 -0000 1.2
+++ WikiTextParser.java 5 Apr 2007 13:04:14 -0000 1.3
@@ -38,10 +38,11 @@
private List<WikiLink> attachments = new ArrayList<WikiLink>();
private List<WikiLink> externalLinks = new ArrayList<WikiLink>();
private Set<String> macroNames = new HashSet<String>();
+ private boolean renderDuplicateMacros;
- public WikiTextParser(String wikiText, WikiTextRenderer renderer) {
+ public WikiTextParser(String wikiText, boolean renderDuplicateMacros) {
super(new SeamTextLexer(new StringReader(wikiText)));
- this.renderer = renderer;
+ this.renderDuplicateMacros = renderDuplicateMacros;
resolver = (WikiLinkResolver)Component.getInstance("wikiLinkResolver");
@@ -52,6 +53,15 @@
}
/**
+ * Mandatory, you need to set a renderer before starting the parer.
+ *
+ * @param renderer an implementation of WikiTextRenderer
+ */
+ public void setRenderer(WikiTextRenderer renderer) {
+ this.renderer = renderer;
+ }
+
+ /**
* Start parsing the wiki text and resolve wiki links and wiki plugins.
* <p>
* If <tt>updateResolvedLinks</tt> is enabled, the <t>currentDocument</tt>'s content will
@@ -81,7 +91,6 @@
renderer.setAttachmentLinks(attachments);
renderer.setExternalLinks(externalLinks);
- renderer.setMacroNames(macroNames);
}
catch (ANTLRException re) {
@@ -128,8 +137,12 @@
protected String macroInclude(String macroName) {
// Filter out any dangerous characters
String filteredName = macroName.replaceAll("[^\\p{Alnum}]+", "");
+ if ( (macroNames.contains(filteredName) && renderDuplicateMacros) || !macroNames.contains(filteredName)) {
macroNames.add(filteredName);
return renderer.renderMacro(filteredName);
+ } else {
+ return "[Can't use the same macro twice!]";
+ }
}
More information about the jboss-cvs-commits
mailing list