org.openide.text
Interface NbDocument.WriteLockable

All Superinterfaces:
Document
Enclosing class:
NbDocument

public static interface NbDocument.WriteLockable
extends Document

Specialized version of document that knows how to lock the document for complex modifications.


Fields inherited from interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
 
Method Summary
 void runAtomic(Runnable r)
          Executes given runnable in lock mode of the document.
 void runAtomicAsUser(Runnable r)
          Executes given runnable in "user mode" does not allowing any modifications to parts of text marked as guarded.
 
Methods inherited from interface javax.swing.text.Document
addDocumentListener, addUndoableEditListener, createPosition, getDefaultRootElement, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeDocumentListener, removeUndoableEditListener, render
 

Method Detail

runAtomic

public void runAtomic(Runnable r)
Executes given runnable in lock mode of the document. In this mode, all redrawing is stopped and the caller has exclusive access to all modifications to the document.

By definition there should be only one locker at a time. Sample implementation, if you are extending AbstractDocument:

writeLock();
try {
  r.run();
} finally {
  writeUnlock();
}

Parameters:
run - runnable to run while locked
See Also:
NbDocument.runAtomic(javax.swing.text.StyledDocument, java.lang.Runnable)

runAtomicAsUser

public void runAtomicAsUser(Runnable r)
                     throws BadLocationException
Executes given runnable in "user mode" does not allowing any modifications to parts of text marked as guarded. The actions should be run as "atomic" so either happen all at once or none at all (if a guarded block should be modified).
Parameters:
run - runnable to run in user mode that will have exclusive access to modify the document
Throws:
BadLocationException - if a modification of guarded text occured and that is why no changes to the document has been done.


Built on December 12 2001.  |  Portions Copyright 1997-2001 Sun Microsystems, Inc. All rights reserved.