de.hillenbrand.swing.text
Class JavaDocument

java.lang.Object
  extended by javax.swing.text.AbstractDocument
      extended by javax.swing.text.PlainDocument
          extended by de.hillenbrand.swing.text.UndoableDocument
              extended by de.hillenbrand.swing.text.JavaDocument
All Implemented Interfaces:
java.io.Serializable, javax.swing.text.Document

public class JavaDocument
extends UndoableDocument

A document to represent text in the form of the java programming language. This is quite primitive in that it simply provides support for lexically analyzing the text.

See Also:
Serialized Form

Nested Class Summary
 class JavaDocument.Scanner
           
 
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 javax.swing.text.PlainDocument
lineLimitAttribute, tabSizeAttribute
 
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
JavaDocument()
           
 
Method Summary
 JavaDocument.Scanner createScanner()
          Create a lexical analyzer for this document.
 int getScannerStart(int p)
          Fetch a reasonable location to start scanning given the desired start location.
protected  void insertUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng, javax.swing.text.AttributeSet attr)
          Updates document structure as a result of text insertion.
protected  void removeUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng)
          Updates any document structure as a result of text removal.
 
Methods inherited from class de.hillenbrand.swing.text.UndoableDocument
canRedo, canUndo, discardAllEdits, getText, redo, setText, undo
 
Methods inherited from class javax.swing.text.PlainDocument
createDefaultRoot, getDefaultRootElement, getParagraphElement, insertString
 
Methods inherited from class javax.swing.text.AbstractDocument
addDocumentListener, 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, remove, removeDocumentListener, 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
 

Constructor Detail

JavaDocument

public JavaDocument()
Method Detail

createScanner

public JavaDocument.Scanner createScanner()
Create a lexical analyzer for this document.


getScannerStart

public int getScannerStart(int p)
Fetch a reasonable location to start scanning given the desired start location. This allows for adjustments needed to accomodate multiline comments.


insertUpdate

protected void insertUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng,
                            javax.swing.text.AttributeSet attr)
Updates document structure as a result of text insertion. This will happen within a write lock. The superclass behavior of updating the line map is executed followed by marking any comment areas that should backtracked before scanning.

Overrides:
insertUpdate in class javax.swing.text.PlainDocument
Parameters:
chng - the change event
attr - the set of attributes

removeUpdate

protected void removeUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng)
Updates any document structure as a result of text removal. This will happen within a write lock. The superclass behavior of updating the line map is executed followed by placing a lexical update command on the analyzer queue.

Overrides:
removeUpdate in class javax.swing.text.PlainDocument
Parameters:
chng - the change event