Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## weka.gui.scripting
Class SyntaxDocument

    java.lang.Object
      javax.swing.text.AbstractDocument
          javax.swing.text.DefaultStyledDocument
              weka.gui.scripting.SyntaxDocument

All Implemented Interfaces:
  java.io.Serializable, javax.swing.text.Document, javax.swing.text.StyledDocument

    public class SyntaxDocument

extends javax.swing.text.DefaultStyledDocument

Highlights syntax in a DefaultStyledDocument. Allows any number of keywords to be formatted in any number of user-defined styles.

Author:
  camickr (primary author; java sun forums user), David Underhill, FracPete (fracpete at waikato dot ac dot nz) - use of a properties file to setup syntax highlighting instead of hard-coded
See Also:
  Serialized Form

Nested Class Summary
`static class` | `SyntaxDocument.ATTR_TYPE` The attribute type.

Nested classes/interfaces inherited from class javax.swing.text.DefaultStyledDocument
`javax.swing.text.DefaultStyledDocument.AttributeUndoableEdit, javax.swing.text.DefaultStyledDocument.ElementBuffer, javax.swing.text.DefaultStyledDocument.ElementSpec`

Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument
`javax.swing.text.AbstractDocument.AbstractElement, javax.swing.text.AbstractDocument.AttributeContext, javax.swing.text.AbstractDocument.BranchElement, javax.swing.text.AbstractDocument.Content, javax.swing.text.AbstractDocument.DefaultDocumentEvent, javax.swing.text.AbstractDocument.ElementEdit, javax.swing.text.AbstractDocument.LeafElement`

Field Summary
`static javax.swing.text.SimpleAttributeSet` | `DEFAULT_COMMENT` the attribute set for comments.
`static java.lang.String` | `DEFAULT_FONT_FAMILY` the font family.
`static int` | `DEFAULT_FONT_SIZE` the font size.
`static javax.swing.text.SimpleAttributeSet` | `DEFAULT_KEYWORD` the attribute set for keywords.
`static javax.swing.text.SimpleAttributeSet` | `DEFAULT_NORMAL` the attribute set for normal code.
`static javax.swing.text.SimpleAttributeSet` | `DEFAULT_STRING` the attribute set for strings.
`static int` | `MAX_TABS` the maximum number of tabs.

Fields inherited from class javax.swing.text.DefaultStyledDocument
`BUFFER_SIZE_DEFAULT`

Fields inherited from class javax.swing.text.AbstractDocument
`BidiElementName, ContentElementName, ElementNameAttribute, ParagraphElementName, SectionElementName`

Fields inherited from interface javax.swing.text.Document
`StreamDescriptionProperty, TitleProperty`

Constructor Summary
`SyntaxDocument(java.util.Properties props)` Initializes the document.

Method Summary
`void` | `addKeyword(java.lang.String keyword, javax.swing.text.MutableAttributeSet attr)` Associates a keyword with a particular formatting style.
`void` | `addKeywords(java.lang.String[] keywords, javax.swing.text.MutableAttributeSet attr)` Associates the keywords with a particular formatting style.
`java.lang.String` | `escapeQuote(java.lang.String quoteDelimiter)` Escapes the quote delimiter.
`boolean` | `getAddMatchingEndBlocks()` Returns whether matching block ends are inserted or not.
`java.awt.Color` | `getBackgroundColor()` Returns the background color.
`java.lang.String` | `getBlockEnd()` Returns the end of a block.
`java.lang.String` | `getBlockStart()` Returns the start of a block.
`boolean` | `getCaseSensitive()` Returns whether blanks are used instead of tabs.
`java.lang.String` | `getDelimiters()` Returns the delimiter characters to use.
`java.lang.String` | `getFontName()` gets the current font family.
`int` | `getFontSize()` gets the current font size.
`int` | `getIndentationSize()` Returns the number of blanks used for indentation.
`javax.swing.text.MutableAttributeSet` | `getKeywordFormatting(java.lang.String keyword)` Gets the formatting for a keyword.
`boolean` | `getMultiLineComment()` Returns whether multi-line comments are enabled.
`java.lang.String` | `getMultiLineCommentEnd()` Returns the end of a multi-line comment.
`java.lang.String` | `getMultiLineCommentStart()` Returns the string that is the start of a multi-line comment.
`java.lang.String` | `getQuoteDelimiters()` Returns the quote delimiter characters to use.
`java.lang.String` | `getQuoteEscape()` Returns the character for escaping a quote delimiter.
`java.lang.String` | `getSingleLineCommentStart()` Retrusn the single line comment start string.
`boolean` | `getUseBlanks()` Returns whether blanks are used instead of tabs.
`void` | `insertString(int offset, java.lang.String str, javax.swing.text.AttributeSet a)` Override to apply syntax highlighting after the document has been updated.
`boolean` | `isDelimiter(java.lang.String character)` Checks whether the character is a delimiter.
`boolean` | `isQuoteDelimiter(java.lang.String character)` Checks whether the character is quote delimiter.
`void` | `processChangedLines(int offset, int length)` Determine how many lines have been changed, then apply highlighting to each line.
`void` | `remove(int offset, int length)` Applies syntax highlighting after the document has been updated.
`void` | `removeKeyword(java.lang.String keyword)` Removes an association between a keyword with a particular formatting style.
`void` | `setAddMatchingEndBlocks(boolean value)` Sets whether matching block ends are inserted or not.
`static void` | `setAttributeColor(javax.swing.text.MutableAttributeSet attr, java.awt.Color c)` Sets the foreground (font) color of the specified attribute.
`void` | `setAttributeColor(SyntaxDocument.ATTR_TYPE attr, java.awt.Color c)` Sets the foreground (font) color of the specified attribute.
`static void` | `setAttributeFont(javax.swing.text.MutableAttributeSet attr, java.awt.Font f)` Sets the font of the specified attribute.
`void` | `setAttributeFont(SyntaxDocument.ATTR_TYPE attr, int style)` Sets the font of the specified attribute.
`void` | `setBackgroundColor(java.awt.Color value)` Sets the background color.
`void` | `setBlockEnd(java.lang.String value)` Sets the string that is the end of a block.
`void` | `setBlockStart(java.lang.String value)` Sets the string that is the start of a block.
`void` | `setCaseSensitive(boolean value)` Sets whether the keywords are case-sensitive or not.
`void` | `setDelimiters(java.lang.String value)` Sets the delimiter characters to use.
`void` | `setFontName(java.lang.String fontName)` sets the current font family (affects all built-in styles).
`void` | `setFontSize(int fontSize)` sets the current font size (affects all built-in styles).
`void` | `setIndentationSize(int value)` Sets the number of blanks to use for indentation.
`void` | `setMultiLineComment(boolean value)` Sets whether to enable multi-line comments.
`void` | `setMultiLineCommentEnd(java.lang.String value)` Sets the string that is the end of a multi-line comment.
`void` | `setMultiLineCommentStart(java.lang.String value)` Sets the string that is the start of a multi-line comment.
`void` | `setQuoteDelimiters(java.lang.String value)` Sets the quote delimiter characters to use.
`void` | `setQuoteEscape(java.lang.String value)` Sets the character to use for escaping a quote character.
`void` | `setSingleLineCommentStart(java.lang.String value)` Sets the string that is the start of a single-line comment.
`void` | `setTabs(int charactersPerTab)` sets the number of characters per tab.
`void` | `setUseBlanks(boolean value)` Sets whether to use blanks instead of tabs.

Methods inherited from class javax.swing.text.DefaultStyledDocument
`addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeStyle, setCharacterAttributes, setLogicalStyle, setParagraphAttributes`

Methods inherited from class javax.swing.text.AbstractDocument
`addUndoableEditListener, createPosition, dump, getAsynchronousLoadPriority, getBidiRootElement, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, putProperty, readLock, readUnlock, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.swing.text.Document
`addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, putProperty, removeUndoableEditListener, render`

Field Detail

### MAX_TABS

    public static final int MAX_TABS

  the maximum number of tabs.

  See Also:
    Constant Field Values

### DEFAULT_FONT_FAMILY

    public static final java.lang.String DEFAULT_FONT_FAMILY

  the font family.

  See Also:
    Constant Field Values

### DEFAULT_FONT_SIZE

    public static final int DEFAULT_FONT_SIZE

  the font size.

  See Also:
    Constant Field Values

### DEFAULT_NORMAL

    public static final javax.swing.text.SimpleAttributeSet DEFAULT_NORMAL

  the attribute set for normal code.

### DEFAULT_COMMENT

    public static final javax.swing.text.SimpleAttributeSet DEFAULT_COMMENT

  the attribute set for comments.

### DEFAULT_STRING

    public static final javax.swing.text.SimpleAttributeSet DEFAULT_STRING

  the attribute set for strings.

### DEFAULT_KEYWORD

    public static final javax.swing.text.SimpleAttributeSet DEFAULT_KEYWORD

  the attribute set for keywords.

Constructor Detail

### SyntaxDocument

    public SyntaxDocument(java.util.Properties props)

  Initializes the document.

  Parameters:
    `props` - the properties to obtain the setup from

Method Detail

### setAttributeFont

    public void setAttributeFont(SyntaxDocument.ATTR_TYPE attr,
                                 int style)

  Sets the font of the specified attribute.

  Parameters:
    `attr` - the attribute to apply this font to (normal, comment, string)
    `style` - font style (Font.BOLD, Font.ITALIC, Font.PLAIN)

### setAttributeFont

    public static void setAttributeFont(javax.swing.text.MutableAttributeSet attr,
                                        java.awt.Font f)

  Sets the font of the specified attribute.

  Parameters:
    `attr` - attribute to apply this font to
    `f` - the font to use

### setAttributeColor

    public void setAttributeColor(SyntaxDocument.ATTR_TYPE attr,
                                  java.awt.Color c)

  Sets the foreground (font) color of the specified attribute.

  Parameters:
    `attr` - the attribute to apply this font to (normal, comment, string)
    `c` - the color to use

### setAttributeColor

    public static void setAttributeColor(javax.swing.text.MutableAttributeSet attr,
                                         java.awt.Color c)

  Sets the foreground (font) color of the specified attribute.

  Parameters:
    `attr` - attribute to apply this color to
    `c` - the color to use

### addKeywords

    public void addKeywords(java.lang.String[] keywords,
                            javax.swing.text.MutableAttributeSet attr)

  Associates the keywords with a particular formatting style.

  Parameters:
    `keywords` - the tokens or words to format
    `attr` - how to format the keywords

### addKeyword

    public void addKeyword(java.lang.String keyword,
                           javax.swing.text.MutableAttributeSet attr)

  Associates a keyword with a particular formatting style.

  Parameters:
    `keyword` - the token or word to format
    `attr` - how to format keyword

### getKeywordFormatting

    public javax.swing.text.MutableAttributeSet getKeywordFormatting(java.lang.String keyword)

  Gets the formatting for a keyword.

  Parameters:
    `keyword` - the token or word to stop formatting
  Returns:
    how keyword is formatted, or null if no formatting is applied to it

### removeKeyword

    public void removeKeyword(java.lang.String keyword)

  Removes an association between a keyword with a particular formatting style.

  Parameters:
    `keyword` - the token or word to stop formatting

### setTabs

    public void setTabs(int charactersPerTab)

  sets the number of characters per tab.

  Parameters:
    `charactersPerTab` - the characters per tab

### insertString

    public void insertString(int offset,
                             java.lang.String str,
                             javax.swing.text.AttributeSet a)
                      throws javax.swing.text.BadLocationException

  Override to apply syntax highlighting after the document has been updated.

  Specified by:
    `insertString` in interface `javax.swing.text.Document`
  Overrides:
    `insertString` in class `javax.swing.text.AbstractDocument`
  Parameters:
    `offset` - the offset
    `str` - the string to insert
    `a` - the attribute set, can be null
  Throws:
    `javax.swing.text.BadLocationException` - if offset is invalid

### remove

    public void remove(int offset,
                       int length)
                throws javax.swing.text.BadLocationException

  Applies syntax highlighting after the document has been updated.

  Specified by:
    `remove` in interface `javax.swing.text.Document`
  Overrides:
    `remove` in class `javax.swing.text.AbstractDocument`
  Parameters:
    `offset` - the offset of the deletion
    `length` - the length of the deletion
  Throws:
    `javax.swing.text.BadLocationException` - if offsets are invalid

### processChangedLines

    public void processChangedLines(int offset,
                                    int length)
                             throws javax.swing.text.BadLocationException

  Determine how many lines have been changed, then apply highlighting to each line.

  Parameters:
    `offset` - the offset of the changed lines
    `length` - the length of the change
  Throws:
    `javax.swing.text.BadLocationException` - if offset is invalid

### isDelimiter

    public boolean isDelimiter(java.lang.String character)

  Checks whether the character is a delimiter.

  Parameters:
    `character` - the character to check
  Returns:
    true if a delimiter

### isQuoteDelimiter

    public boolean isQuoteDelimiter(java.lang.String character)

  Checks whether the character is quote delimiter.

  Parameters:
    `character` - the character to check
  Returns:
    true if a quote delimiter

### escapeQuote

    public java.lang.String escapeQuote(java.lang.String quoteDelimiter)

  Escapes the quote delimiter.

  Parameters:
    `quoteDelimiter` - the string to escape
  Returns:
    the escaped string

### getFontSize

    public int getFontSize()

  gets the current font size.

  Returns:
    the font size

### setFontSize

    public void setFontSize(int fontSize)

  sets the current font size (affects all built-in styles).

  Parameters:
    `fontSize` - the size

### getFontName

    public java.lang.String getFontName()

  gets the current font family.

  Returns:
    the font name

### setFontName

    public void setFontName(java.lang.String fontName)

  sets the current font family (affects all built-in styles).

  Parameters:
    `fontName` - the font name

### setIndentationSize

    public void setIndentationSize(int value)

  Sets the number of blanks to use for indentation.

  Parameters:
    `value` - the number of blanks

### getIndentationSize

    public int getIndentationSize()

  Returns the number of blanks used for indentation.

  Returns:
    the number of blanks

### setDelimiters

    public void setDelimiters(java.lang.String value)

  Sets the delimiter characters to use.

  Parameters:
    `value` - the characters

### getDelimiters

    public java.lang.String getDelimiters()

  Returns the delimiter characters to use.

  Returns:
    the characters

### setQuoteDelimiters

    public void setQuoteDelimiters(java.lang.String value)

  Sets the quote delimiter characters to use.

  Parameters:
    `value` - the characters

### getQuoteDelimiters

    public java.lang.String getQuoteDelimiters()

  Returns the quote delimiter characters to use.

  Returns:
    the characters

### setQuoteEscape

    public void setQuoteEscape(java.lang.String value)

  Sets the character to use for escaping a quote character.

  Parameters:
    `value` - the character

### getQuoteEscape

    public java.lang.String getQuoteEscape()

  Returns the character for escaping a quote delimiter.

  Returns:
    the character

### setSingleLineCommentStart

    public void setSingleLineCommentStart(java.lang.String value)

  Sets the string that is the start of a single-line comment.

  Parameters:
    `value` - the string

### getSingleLineCommentStart

    public java.lang.String getSingleLineCommentStart()

  Retrusn the single line comment start string.

  Returns:
    the start string

### setMultiLineCommentStart

    public void setMultiLineCommentStart(java.lang.String value)

  Sets the string that is the start of a multi-line comment.

  Parameters:
    `value` - the string

### getMultiLineCommentStart

    public java.lang.String getMultiLineCommentStart()

  Returns the string that is the start of a multi-line comment.

  Returns:
    the string

### setMultiLineCommentEnd

    public void setMultiLineCommentEnd(java.lang.String value)

  Sets the string that is the end of a multi-line comment.

  Parameters:
    `value` - the string

### getMultiLineCommentEnd

    public java.lang.String getMultiLineCommentEnd()

  Returns the end of a multi-line comment.

  Returns:
    the end string

### setBlockStart

    public void setBlockStart(java.lang.String value)

  Sets the string that is the start of a block.

  Parameters:
    `value` - the string

### getBlockStart

    public java.lang.String getBlockStart()

  Returns the start of a block.

  Returns:
    the end string

### setBlockEnd

    public void setBlockEnd(java.lang.String value)

  Sets the string that is the end of a block.

  Parameters:
    `value` - the string

### getBlockEnd

    public java.lang.String getBlockEnd()

  Returns the end of a block.

  Returns:
    the end string

### setAddMatchingEndBlocks

    public void setAddMatchingEndBlocks(boolean value)

  Sets whether matching block ends are inserted or not.

  Parameters:
    `value` - if true then matching block ends are inserted

### getAddMatchingEndBlocks

    public boolean getAddMatchingEndBlocks()

  Returns whether matching block ends are inserted or not.

  Returns:
    true if matching block ends are inserted

### setUseBlanks

    public void setUseBlanks(boolean value)

  Sets whether to use blanks instead of tabs.

  Parameters:
    `value` - if true then blanks are used instead of tabs

### getUseBlanks

    public boolean getUseBlanks()

  Returns whether blanks are used instead of tabs.

  Returns:
    true if blanks are used instead of tabs

### setBackgroundColor

    public void setBackgroundColor(java.awt.Color value)

  Sets the background color.

  Parameters:
    `value` - the background color

### getBackgroundColor

    public java.awt.Color getBackgroundColor()

  Returns the background color.

  Returns:
    the background color

### setMultiLineComment

    public void setMultiLineComment(boolean value)

  Sets whether to enable multi-line comments.

  Parameters:
    `value` - if true then multi-line comments are enabled

### getMultiLineComment

    public boolean getMultiLineComment()

  Returns whether multi-line comments are enabled.

  Returns:
    true if multi-line comments are enabled

### setCaseSensitive

    public void setCaseSensitive(boolean value)

  Sets whether the keywords are case-sensitive or not.

  Parameters:
    `value` - if true then keywords are treated case-sensitive

### getCaseSensitive

    public boolean getCaseSensitive()

  Returns whether blanks are used instead of tabs.

  Returns:
    true if keywords are case-sensitive

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD