groovy.ui.text
Class StructuredSyntaxDocumentFilter

java.lang.Object
  extended by javax.swing.text.DocumentFilter
      extended by groovy.ui.text.StructuredSyntaxDocumentFilter
Direct Known Subclasses:
GroovyFilter

public class StructuredSyntaxDocumentFilter
extends DocumentFilter

Author:
Evan "Hippy" Slatis

Nested Class Summary
 class StructuredSyntaxDocumentFilter.LexerNode
           
protected  class StructuredSyntaxDocumentFilter.MultiLineRun
           
 
Nested classes/interfaces inherited from class javax.swing.text.DocumentFilter
DocumentFilter.FilterBypass
 
Field Summary
protected  StructuredSyntaxDocumentFilter.LexerNode lexer
          The root of the lexical parsing tree.
protected  SortedSet mlTextRunSet
          The position tree of multi-line comments.
protected  DefaultStyledDocument styledDocument
           
static String TAB_REPLACEMENT
           
 
Constructor Summary
StructuredSyntaxDocumentFilter(DefaultStyledDocument document)
          Creates a new instance of StructuredSyntaxDocumentFilter
 
Method Summary
 StructuredSyntaxDocumentFilter.LexerNode createLexerNode()
          Create a new LexerNode for adding to root.
 StructuredSyntaxDocumentFilter.LexerNode getRootNode()
          Get the root node for lexing the document.
 void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attrs)
          Insert a string into the document, and then parse it if the parser has been set.
protected  void parseDocument(int offset, int length)
          Parse the Document to update the character styles given an initial start position.
 void remove(DocumentFilter.FilterBypass fb, int offset, int length)
          Remove a string from the document, and then parse it if the parser has been set.
 void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs)
          Replace a string in the document, and then parse it if the parser has been set.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TAB_REPLACEMENT

public static final String TAB_REPLACEMENT
See Also:
Constant Field Values

lexer

protected StructuredSyntaxDocumentFilter.LexerNode lexer
The root of the lexical parsing tree.


styledDocument

protected DefaultStyledDocument styledDocument

mlTextRunSet

protected SortedSet mlTextRunSet
The position tree of multi-line comments.

Constructor Detail

StructuredSyntaxDocumentFilter

public StructuredSyntaxDocumentFilter(DefaultStyledDocument document)
Creates a new instance of StructuredSyntaxDocumentFilter

Parameters:
document - the styled document to parse
Method Detail

createLexerNode

public StructuredSyntaxDocumentFilter.LexerNode createLexerNode()
Create a new LexerNode for adding to root.

Returns:
a new LexerNode

getRootNode

public StructuredSyntaxDocumentFilter.LexerNode getRootNode()
Get the root node for lexing the document. Children can be added such that matching patterns can be further parsed if required.

Returns:
the root lexing node.

insertString

public void insertString(DocumentFilter.FilterBypass fb,
                         int offset,
                         String text,
                         AttributeSet attrs)
                  throws BadLocationException
Insert a string into the document, and then parse it if the parser has been set.

Overrides:
insertString in class DocumentFilter
Parameters:
fb -
offset -
text -
attrs -
Throws:
BadLocationException

parseDocument

protected void parseDocument(int offset,
                             int length)
                      throws BadLocationException
Parse the Document to update the character styles given an initial start position. Called by the filter after it has updated the text.

Parameters:
offset -
length -
Throws:
BadLocationException

remove

public void remove(DocumentFilter.FilterBypass fb,
                   int offset,
                   int length)
            throws BadLocationException
Remove a string from the document, and then parse it if the parser has been set.

Overrides:
remove in class DocumentFilter
Parameters:
fb -
offset -
length -
Throws:
BadLocationException

replace

public void replace(DocumentFilter.FilterBypass fb,
                    int offset,
                    int length,
                    String text,
                    AttributeSet attrs)
             throws BadLocationException
Replace a string in the document, and then parse it if the parser has been set.

Overrides:
replace in class DocumentFilter
Parameters:
fb -
offset -
length -
text -
attrs -
Throws:
BadLocationException

Copyright © 2003-2010 The Codehaus. All rights reserved.