public class GuardedTextBuffer extends TextBufferDecorator
A range of offsets can be marked as guarded or unguarded via the guard and unguard methods. The guard can be turned on or off via setGuardActive().
Any attempt to modify a guarded section, when the guard is active, will result in a GuardedException.
_forwarder, _tbuffer_rbufferEOL_CR, EOL_CRLF, EOL_LF, EOL_MACINTOSH, EOL_UNIX, EOL_WINDOWS, READ_ONLY, WRITABLELOCK_STATUS_NONE, LOCK_STATUS_READ, LOCK_STATUS_UNSUPPORTED, LOCK_STATUS_WRITE| Constructor and Description |
|---|
GuardedTextBuffer(TextBuffer textBuffer)
Create a guarded text buffer by wrapping a TextBuffer.
|
GuardedTextBuffer(TextBuffer textBuffer,
boolean forwardListeners)
Create a guarded text buffer by wrapping a TextBuffer.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addGuardedTextBufferListener(GuardedTextBufferListener listener)
Add a listener to be notified when sections become guarded and unguarded.
|
int |
findInsertableOffset(int offset,
int count,
boolean admitInsertToGuardedBeginning)
Finds first insertable unguarded offset for specified range.
|
java.util.List<OffsetRegion> |
getRegions() |
void |
guard(int offset,
int length)
Guard a section of the buffer.
|
javax.swing.undo.UndoableEdit |
insert(int offset,
char[] data)
Inserts the indicated data into the text buffer at the given offset.
|
javax.swing.undo.UndoableEdit |
insert(int offset,
java.io.Reader reader)
Inserts the data from a Reader instance into the text buffer at
the given offset.
|
boolean |
isGuardActive() |
boolean |
isOffsetGuarded(int offset) |
boolean |
isOffsetRangeGuarded(int offset,
int count) |
void |
read(java.io.Reader reader)
Replaces the current contents of the text buffer with the data
from a reader instance.
|
javax.swing.undo.UndoableEdit |
remove(int offset,
int count)
Removes a range of data from the text buffer.
|
void |
removeGuardedTextBufferListener(GuardedTextBufferListener listener) |
javax.swing.undo.UndoableEdit |
removeToEnd(int offset)
Removes data from the text buffer starting at the given offset to
the end of the buffer.
|
void |
setGuardActive(boolean isGuardActive)
Turn the guard on or off.
|
void |
unguard(int offset,
int length)
Stop guarding a section of the buffer.
|
addOffsetMark, addOffsetMark, addTextBufferListener, addWriteLockRequestListener, append, beginEdit, clearModified, endEdit, getChangeId, getEOLType, getLineMap, getPlatformEOLType, getTextBuffer, isModified, isReadOnly, removeOffsetMark, removeTextBufferListener, removeWriteLockRequestListener, setEOLType, setReadOnly, setTextBuffer, tryWriteLock, write, write, writeLock, writeLock, writeLockInterruptibly, writeUnlockgetChar, getChars, getLength, getLockStatus, getString, getText, readLock, readLockInterruptibly, readUnlock, tryReadLockclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetChar, getChars, getLength, getLockStatus, getString, getText, readLock, readLockInterruptibly, readUnlock, tryReadLockpublic GuardedTextBuffer(TextBuffer textBuffer)
textBuffer - public GuardedTextBuffer(TextBuffer textBuffer, boolean forwardListeners)
textBuffer - forwardListeners - whether listeners attached to GuardedTextBuffer
should be attached to the delegate buffer, use true if you don't
listen to the delegate buffer directlypublic void guard(int offset,
int length)
offset - length - public void unguard(int offset,
int length)
offset - length - public boolean isOffsetGuarded(int offset)
offset - public boolean isOffsetRangeGuarded(int offset,
int count)
offset - count - public int findInsertableOffset(int offset,
int count,
boolean admitInsertToGuardedBeginning)
admitInsertToGuardedBeginning if insert should be admissible at the beginning of a guarded
block - possibility to insert between two adjacent guarded blocks.
See insert(int, char[]) implementation.offset - Start of offsetcount - Length of offsetadmitInsertToGuardedBeginning - Should be insert at beginning of guarded block admissible?public java.util.List<OffsetRegion> getRegions()
public void setGuardActive(boolean isGuardActive)
isGuardActive - public boolean isGuardActive()
public javax.swing.undo.UndoableEdit insert(int offset,
char[] data)
throws java.lang.IndexOutOfBoundsException,
ReadOnlyException
TextBufferDecoratorinsertUpdate(). This will return an
UndoableEdit representing this insert change unless a compound
edit is in progress in which case null is returned.insert in interface TextBufferinsert in class TextBufferDecoratoroffset - the offset at which to insert the new datadata - the text to insertjava.lang.IndexOutOfBoundsException - if offset is invalidReadOnlyException - if the buffer is in read only modeTextBuffer.beginEdit(),
TextBuffer.endEdit(),
TextBuffer.addTextBufferListener(oracle.javatools.buffer.TextBufferListener),
TextBuffer.removeTextBufferListener(oracle.javatools.buffer.TextBufferListener)public javax.swing.undo.UndoableEdit insert(int offset,
java.io.Reader reader)
throws java.lang.IndexOutOfBoundsException,
java.io.IOException,
ReadOnlyException
TextBufferDecoratorinsertUpdate(). This will
return an UndoableEdit representing this insert change unless a
compound edit is in progress in which case null is returned.insert in interface TextBufferinsert in class TextBufferDecoratoroffset - the offset at which to insert the new datareader - a Reader instance from which to read text datajava.lang.IndexOutOfBoundsException - if offset is invalidjava.io.IOException - as thrown by the stream if an error occurs
while reading dataReadOnlyException - if the buffer is in read only modeTextBuffer.beginEdit(),
TextBuffer.endEdit(),
TextBuffer.addTextBufferListener(oracle.javatools.buffer.TextBufferListener),
TextBuffer.removeTextBufferListener(oracle.javatools.buffer.TextBufferListener)public javax.swing.undo.UndoableEdit remove(int offset,
int count)
throws java.lang.IndexOutOfBoundsException,
ReadOnlyException
TextBufferDecoratorremoveUpdate(). This will return an UndoableEdit
representing this removal change unless a compound edit is in
progress in which case null is returned.remove in interface TextBufferremove in class TextBufferDecoratoroffset - the offset at which to remove datacount - number of characters to removejava.lang.IndexOutOfBoundsException - if offset or count is invalidReadOnlyException - if the buffer is in read only modeTextBuffer.beginEdit(),
TextBuffer.endEdit()public javax.swing.undo.UndoableEdit removeToEnd(int offset)
throws java.lang.IndexOutOfBoundsException,
ReadOnlyException
TextBufferDecoratorremoveUpdate
notification. The UndoableEdit representing this removal will
be returned unless a compound edit is in progress.removeToEnd in interface TextBufferremoveToEnd in class TextBufferDecoratoroffset - the offset at which to remove datajava.lang.IndexOutOfBoundsException - if offset is invalidReadOnlyException - if the buffer is in read only modeTextBuffer.remove(int, int),
TextBuffer.beginEdit(),
TextBuffer.endEdit()public void read(java.io.Reader reader)
throws java.io.IOException
TextBufferDecoratorNote that this call will reset the read-only status of the text buffer back to WRITABLE.
read in interface TextBufferread in class TextBufferDecoratorreader - a Reader instance from which to read text datajava.io.IOException - as thrown by the stream if an error occurs
while reading datapublic void addGuardedTextBufferListener(GuardedTextBufferListener listener)
listener - public void removeGuardedTextBufferListener(GuardedTextBufferListener listener)