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.
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 |
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.