inpro.incremental.source
Class IUDocument

java.lang.Object
  extended by javax.swing.text.AbstractDocument
      extended by javax.swing.text.PlainDocument
          extended by inpro.incremental.source.IUDocument
All Implemented Interfaces:
java.io.Serializable, javax.swing.text.Document

public class IUDocument
extends javax.swing.text.PlainDocument

An IUDocument stores a list of current IUs, edits since the last update and the string for the (partial) next IU It handles HypothesisChangeListeners which are notified, when the IUList changes (or is committed) (and can be set via setListeners()) IUs are committed and the list is reset after an explicit call to commit() (when used as the document of a JTextField, this can be done by calling commit() from a JTextField's ActionListener)

Author:
timo
See Also:
Document, Serialized Form

Nested Class Summary
 
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
(package private)  int currentFrame
           
(package private)  java.lang.String currentWord
           
(package private)  java.util.List<EditMessage<TextualWordIU>> edits
           
(package private)  java.util.List<PushBuffer> listeners
           
(package private)  IUList<TextualWordIU> wordIUs
           
 
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
IUDocument()
           
 
Method Summary
private  void addCurrentWord()
           
 void commit()
           
 void insertString(int offs, java.lang.String str, javax.swing.text.AttributeSet a)
          only allow insertion at the right end
 void notifyListeners()
           
 void remove(int offs, int len)
          only allow removal at the right end and correctly handle removals beyond the current word
 void setListeners(java.util.List<PushBuffer> listeners)
           
 
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, 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
 

Field Detail

listeners

java.util.List<PushBuffer> listeners

wordIUs

IUList<TextualWordIU> wordIUs

edits

java.util.List<EditMessage<TextualWordIU>> edits

currentWord

java.lang.String currentWord

currentFrame

int currentFrame
Constructor Detail

IUDocument

public IUDocument()
Method Detail

setListeners

public void setListeners(java.util.List<PushBuffer> listeners)

notifyListeners

public void notifyListeners()

addCurrentWord

private void addCurrentWord()

commit

public void commit()

remove

public void remove(int offs,
                   int len)
            throws javax.swing.text.BadLocationException
only allow removal at the right end and correctly handle removals beyond the current word

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

insertString

public void insertString(int offs,
                         java.lang.String str,
                         javax.swing.text.AttributeSet a)
                  throws javax.swing.text.BadLocationException
only allow insertion at the right end

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