javax.swing.text

Class StringContent

public final class StringContent extends Object implements AbstractDocument.Content, Serializable

An implementation of the AbstractDocument.Content interface useful for small documents or debugging. The character content is a simple character array. It's not really efficient.

Do not use this class for large size.

Constructor Summary
StringContent()
Creates a new instance containing the string "\n".
StringContent(int initialLength)
Creates a new instance containing the string "\n".
Method Summary
PositioncreatePosition(int offset)
Creates a position reference for the character at the given offset.
voidgetChars(int where, int len, Segment txt)
Updates txt to contain a direct reference to the underlying character array.
protected VectorgetPositionsInRange(Vector v, int offset, int length)
StringgetString(int where, int len)
Returns a new String containing the characters in the specified range.
UndoableEditinsertString(int where, String str)
Inserts str at the given position and returns an {@link UndoableEdit} that enables undo/redo support.
intlength()
Returns the length of the string content, including the '\n' character at the end.
UndoableEditremove(int where, int nitems)
Removes the specified range of characters and returns an {@link UndoableEdit} that enables undo/redo support.
protected voidupdateUndoPositions(Vector positions)
Resets the positions in the specified vector to their original offset after a undo operation is performed.

Constructor Detail

StringContent

public StringContent()
Creates a new instance containing the string "\n". This is equivalent to calling {@link #StringContent(int)} with an initialLength of 10.

StringContent

public StringContent(int initialLength)
Creates a new instance containing the string "\n".

Parameters: initialLength the initial length of the underlying character array used to store the content.

Method Detail

createPosition

public Position createPosition(int offset)
Creates a position reference for the character at the given offset. The position offset will be automatically updated when new characters are inserted into or removed from the content.

Parameters: offset the character offset.

Throws: BadLocationException if offset is outside the bounds of the content.

getChars

public void getChars(int where, int len, Segment txt)
Updates txt to contain a direct reference to the underlying character array.

Parameters: where the index of the first character. len the number of characters. txt a carrier for the return result (null not permitted).

Throws: BadLocationException if the requested character range is not within the bounds of the content. NullPointerException if txt is null.

getPositionsInRange

protected Vector getPositionsInRange(Vector v, int offset, int length)

getString

public String getString(int where, int len)
Returns a new String containing the characters in the specified range.

Parameters: where the start index. len the number of characters.

Returns: A string.

Throws: BadLocationException if the requested range of characters extends outside the bounds of the content.

insertString

public UndoableEdit insertString(int where, String str)
Inserts str at the given position and returns an {@link UndoableEdit} that enables undo/redo support.

Parameters: where the insertion point (must be less than length()). str the string to insert (null not permitted).

Returns: An object that can undo the insertion.

length

public int length()
Returns the length of the string content, including the '\n' character at the end.

Returns: The length of the string content.

remove

public UndoableEdit remove(int where, int nitems)
Removes the specified range of characters and returns an {@link UndoableEdit} that enables undo/redo support.

Parameters: where the starting index. nitems the number of characters.

Returns: An object that can undo the removal.

Throws: BadLocationException if the character range extends outside the bounds of the content OR includes the last character.

updateUndoPositions

protected void updateUndoPositions(Vector positions)
Resets the positions in the specified vector to their original offset after a undo operation is performed. For example, after removing some content, the positions in the removed range will all be set to one offset. This method restores the positions to their original offsets after an undo.