[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/util ...
Christian Bauer
christian at hibernate.org
Tue Nov 13 02:58:09 EST 2007
User: cbauer
Date: 07/11/13 02:58:09
Modified: examples/wiki/src/main/org/jboss/seam/wiki/util
WikiUtil.java
Log:
Fixed 'create user homepage' bug, added macro detection
Revision Changes Path
1.20 +34 -0 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/util/WikiUtil.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: WikiUtil.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/util/WikiUtil.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- WikiUtil.java 9 Nov 2007 15:08:27 -0000 1.19
+++ WikiUtil.java 13 Nov 2007 07:58:09 -0000 1.20
@@ -7,10 +7,14 @@
package org.jboss.seam.wiki.util;
import org.jboss.seam.Component;
+import org.jboss.seam.ui.validator.FormattedTextValidator;
import org.jboss.seam.international.Messages;
import org.jboss.seam.core.Conversation;
import org.jboss.seam.wiki.core.action.prefs.WikiPreferences;
import org.jboss.seam.wiki.core.model.*;
+import org.jboss.seam.wiki.core.engine.WikiTextParser;
+import org.jboss.seam.wiki.core.engine.WikiLinkResolver;
+import org.jboss.seam.wiki.core.engine.NullWikiTextRenderer;
import javax.faces.context.FacesContext;
import javax.imageio.ImageIO;
@@ -29,6 +33,9 @@
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
+import antlr.RecognitionException;
+import antlr.ANTLRException;
+
/**
* Adds stuff to and for JSF that should be there but isn't. Also stuff that is exposed
* as a Facelets function, and various other useful static methods that are called from
@@ -241,6 +248,33 @@
}
+ public static String findMacros(Document currentDocument, Directory currentDirectory, String wikitext) {
+ if (wikitext == null) return null;
+ final StringBuilder usedMacros = new StringBuilder();
+ WikiTextParser parser = new WikiTextParser(wikitext, false, false);
+ parser.setCurrentDocument(currentDocument);
+ parser.setCurrentDirectory(currentDirectory);
+ parser.setResolver((WikiLinkResolver)Component.getInstance("wikiLinkResolver"));
+
+ try {
+ class MacroRenderer extends NullWikiTextRenderer {
+ public String renderMacro(String macroName) {
+ usedMacros.append(macroName).append(" ");
+ return null;
+ }
+ }
+ parser.setRenderer( new MacroRenderer() ).parse(false);
+
+ } catch (RecognitionException rex) {
+ // Swallowing, we don't really care if there was a parse error
+ } catch (ANTLRException ex) {
+ // All other errors are fatal;
+ throw new RuntimeException(ex);
+ }
+
+ return usedMacros.toString();
+ }
+
// TODO: This would be the job of a more flexible seam text parser...
public static String disableFloats(String string) {
return string.replaceAll("float:\\s?(right)|(left)", "float:none")
More information about the jboss-cvs-commits
mailing list