interact
Class OutputDocument

java.lang.Object
  extended byjavax.swing.text.AbstractDocument
      extended byjavax.swing.text.PlainDocument
          extended byinteract.OutputDocument
All Implemented Interfaces:
javax.swing.text.Document, java.io.Serializable

public class OutputDocument
extends javax.swing.text.PlainDocument

This is a Document model used by IOTextArea. It maintains an output position where output should be inserted. The user can type one line ahead at the bottom of the document as output is coming out.

When the user presses return, his input is sent to a Writer.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes 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
OutputDocument()
           
 
Method Summary
 int getOutputOffset()
          Offset in document where next output will go.
 int handleNewline(java.io.Writer w, int dot)
          Returns where caret should go.
 void insertOutput(java.lang.String text, javax.swing.text.AttributeSet as)
          Use this to insert text at the output Position.
 void insertString(int offset, java.lang.String text, javax.swing.text.AttributeSet as)
          This is the normal method to insert a string.
 
Methods inherited from class javax.swing.text.PlainDocument
createDefaultRoot, getDefaultRootElement, getParagraphElement, insertUpdate, removeUpdate
 
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

OutputDocument

public OutputDocument()
Method Detail

getOutputOffset

public int getOutputOffset()
Offset in document where next output will go.


handleNewline

public int handleNewline(java.io.Writer w,
                         int dot)
Returns where caret should go.


insertString

public void insertString(int offset,
                         java.lang.String text,
                         javax.swing.text.AttributeSet as)
                  throws javax.swing.text.BadLocationException
This is the normal method to insert a string. If the insertion point is the same as the outputPos, the outputPos will move, so we need to make a new one at the old offset.

Throws:
javax.swing.text.BadLocationException

insertOutput

public void insertOutput(java.lang.String text,
                         javax.swing.text.AttributeSet as)
Use this to insert text at the output Position.