[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