org.rosuda.JGR.toolkit
Class SyntaxDocument

java.lang.Object
  extended by javax.swing.text.AbstractDocument
      extended by javax.swing.text.DefaultStyledDocument
          extended by org.rosuda.JGR.toolkit.JGRStyledDocument
              extended by org.rosuda.JGR.toolkit.SyntaxDocument
All Implemented Interfaces:
java.io.Serializable, javax.swing.text.Document, javax.swing.text.StyledDocument

public class SyntaxDocument
extends JGRStyledDocument

SytnaxDocument - provides R-Syntaxhighlighting.

Author:
Markus Helbig adapted from java-developer forum RoSuDa 2003 - 2004
See Also:
Serialized Form

Nested Class Summary
 
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, javax.swing.text.DefaultStyledDocument.SectionElement
 
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
 
Fields inherited from class org.rosuda.JGR.toolkit.JGRStyledDocument
tabSizeAttribute
 
Fields inherited from class javax.swing.text.DefaultStyledDocument
buffer, BUFFER_SIZE_DEFAULT
 
Fields inherited from class javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
 
Fields inherited from interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
 
Constructor Summary
SyntaxDocument()
           
 
Method Summary
protected  java.lang.String addMatchingBrace(int offset)
           
protected  java.lang.String getEscapeString(java.lang.String quoteDelimiter)
          Get escape character.
protected  java.lang.String getSingleLineDelimiter()
          Get character which indicates comments (#).
 void insertString(int offset, java.lang.String str, javax.swing.text.AttributeSet a)
          Insert text and apply coloring.
 void insertStringWithoutWhiteSpace(int offset, java.lang.String str, javax.swing.text.AttributeSet a)
          Insert text without whitespaces.
protected  boolean isDelimiter(java.lang.String character)
          Is character a delimiter (,;:{}()[]+-/%<=>!
protected  boolean isKeyword(java.lang.String token)
          Is character a keyword.
protected  boolean isNumber(java.lang.String token)
          Is character a number.
protected  boolean isObject(java.lang.String token)
          Is character a object in current workspace.
protected  boolean isQuoteDelimiter(java.lang.String character)
          Is character a qoutedelimiter (").
 void processChangedLines(int offset, int length)
          Determine which lines have changed and apply highlighting to them.
 void remove(int offset, int length)
          Remove text and apply again coloring.
 
Methods inherited from class javax.swing.text.DefaultStyledDocument
addDocumentListener, addStyle, create, createDefaultRoot, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, insert, insertUpdate, removeDocumentListener, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, setParagraphAttributes, styleChanged
 
Methods inherited from class javax.swing.text.AbstractDocument
addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, postRemoveUpdate, putProperty, readLock, readUnlock, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.swing.text.StyledDocument
addStyle, getBackground, getCharacterElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, removeStyle, setCharacterAttributes, setLogicalStyle, setParagraphAttributes
 
Methods inherited from interface javax.swing.text.Document
addDocumentListener, addUndoableEditListener, createPosition, getDefaultRootElement, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, putProperty, removeDocumentListener, removeUndoableEditListener, render
 

Constructor Detail

SyntaxDocument

public SyntaxDocument()
Method Detail

insertString

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

Specified by:
insertString in interface javax.swing.text.Document
Overrides:
insertString in class JGRStyledDocument
Throws:
javax.swing.text.BadLocationException

insertStringWithoutWhiteSpace

public void insertStringWithoutWhiteSpace(int offset,
                                          java.lang.String str,
                                          javax.swing.text.AttributeSet a)
                                   throws javax.swing.text.BadLocationException
Insert text without whitespaces.

Throws:
javax.swing.text.BadLocationException

remove

public void remove(int offset,
                   int length)
            throws javax.swing.text.BadLocationException
Remove text and apply again coloring.

Specified by:
remove in interface javax.swing.text.Document
Overrides:
remove in class javax.swing.text.AbstractDocument
Throws:
javax.swing.text.BadLocationException

processChangedLines

public void processChangedLines(int offset,
                                int length)
                         throws javax.swing.text.BadLocationException
Determine which lines have changed and apply highlighting to them.

Throws:
javax.swing.text.BadLocationException

isDelimiter

protected boolean isDelimiter(java.lang.String character)
Is character a delimiter (,;:{}()[]+-/%<=>!&|^~*$).


isQuoteDelimiter

protected boolean isQuoteDelimiter(java.lang.String character)
Is character a qoutedelimiter (").


isKeyword

protected boolean isKeyword(java.lang.String token)
Is character a keyword.


isNumber

protected boolean isNumber(java.lang.String token)
Is character a number.


isObject

protected boolean isObject(java.lang.String token)
Is character a object in current workspace.


getSingleLineDelimiter

protected java.lang.String getSingleLineDelimiter()
Get character which indicates comments (#).

Returns:
#

getEscapeString

protected java.lang.String getEscapeString(java.lang.String quoteDelimiter)
Get escape character.

Returns:
\\

addMatchingBrace

protected java.lang.String addMatchingBrace(int offset)
                                     throws javax.swing.text.BadLocationException
Throws:
javax.swing.text.BadLocationException