[jboss-cvs] jboss-seam ...

Gavin King gavin.king at jboss.com
Fri Jan 26 13:15:40 EST 2007


  User: gavin   
  Date: 07/01/26 13:15:40

  Modified:    jboss-seam  seam-text.g
  Log:
  finish the link support
  
  Revision  Changes    Path
  1.24      +23 -10    jboss-seam/seam-text.g
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: seam-text.g
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/seam-text.g,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -b -r1.23 -r1.24
  --- seam-text.g	26 Jan 2007 16:02:40 -0000	1.23
  +++ seam-text.g	26 Jan 2007 18:15:40 -0000	1.24
  @@ -12,20 +12,17 @@
   	private java.util.Set htmlElements = new java.util.HashSet( java.util.Arrays.asList( new String[] { "a", "p", "quote", "code", "pre", "table", "tr", "td", "th", "ul", "ol", "li", "b", "i", "u", "tt", "del", "em", "hr", "br", "div", "span", "h1", "h2", "h3", "h4", "img" } ) );
   	private java.util.Set htmlAttributes = new java.util.HashSet( java.util.Arrays.asList( new String[] { "src", "href", "lang", "class", "id" } ) );
   	
  -    private StringBuilder builder = new StringBuilder();
  +    private StringBuilder mainBuilder = new StringBuilder();
  +    private StringBuilder builder = mainBuilder;
       
       public String toString() {
           return builder.toString();
       }
       
  -    public void append(String... strings) {
  +    private void append(String... strings) {
           for (String string: strings) builder.append(string);
       }
       
  -    public void append(StringBuilder sb) {
  -        builder.append(sb);
  -    }
  -    
       private static boolean hasMultiple(String string, char c) {
           return string.indexOf(c)!=string.lastIndexOf(c);
       }
  @@ -42,6 +39,22 @@
           }
       }
   
  +    private void beginCapture() {
  +        builder = new StringBuilder();
  +    }
  +    
  +    private String endCapture() {
  +        String result = builder.toString();
  +        builder = mainBuilder;
  +        return result;
  +    }
  +    
  +    protected String linkUrl(String linkText) { return linkText.trim(); }
  +    
  +    protected String linkDescription(String descriptionText, String linkText) { 
  +        return descriptionText.toString().trim().length()>0 ? descriptionText : linkText; 
  +    }
  +
   }
   
   startRule: (newline)* ( (heading (newline)* )? text (heading (newline)* text)* )?
  @@ -96,13 +109,13 @@
       ;
       
   link: OPEN 
  -      { StringBuilder main=builder; builder = new StringBuilder(); } 
  +      { beginCapture(); } 
         (plain)* 
  -      { StringBuilder text=builder; builder=main; } 
  +      { String text=endCapture(); } 
         EQ GT 
  -      { append("<a href=\""); } 
  +      { beginCapture(); }
         attributeValue 
  -      { append("\">"); append(text); append("</a>"); } 
  +      { String link = endCapture(); append("<a href=\""); append( linkUrl(link) ); append("\">"); append( linkDescription(text, link) ); append("</a>"); } 
         CLOSE
       ;
       
  
  
  



More information about the jboss-cvs-commits mailing list