javax.swing.text
Class StringContent

java.lang.Object
  extended by javax.swing.text.StringContent
All Implemented Interfaces:
Serializable, AbstractDocument.Content

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.

See Also:
Serialized Form

Constructor Summary
StringContent()
          Creates a new instance containing the string "\n".
StringContent(int initialLength)
          Creates a new instance containing the string "\n".
 
Method Summary
 Position createPosition(int offset)
          Creates a position reference for the character at the given offset.
 void getChars(int where, int len, Segment txt)
          Updates txt to contain a direct reference to the underlying character array.
protected  Vector getPositionsInRange(Vector v, int offset, int length)
           
 String getString(int where, int len)
          Returns a new String containing the characters in the specified range.
 UndoableEdit insertString(int where, String str)
          Inserts str at the given position and returns an UndoableEdit that enables undo/redo support.
 int length()
          Returns the length of the string content, including the '\n' character at the end.
 UndoableEdit remove(int where, int nitems)
          Removes the specified range of characters and returns an UndoableEdit that enables undo/redo support.
protected  void updateUndoPositions(Vector positions)
          Resets the positions in the specified vector to their original offset after a undo operation is performed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StringContent

public StringContent()
Creates a new instance containing the string "\n". This is equivalent to calling 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

getPositionsInRange

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

createPosition

public Position createPosition(int offset)
                        throws BadLocationException
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.

Specified by:
createPosition in interface AbstractDocument.Content
Parameters:
offset - the character offset.
Returns:
a Position that keeps track of the location at offset.
Throws:
BadLocationException - if offset is outside the bounds of the content.

length

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

Specified by:
length in interface AbstractDocument.Content
Returns:
The length of the string content.

insertString

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

Specified by:
insertString in interface AbstractDocument.Content
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.
Throws:
BadLocationException - if where is not a valid location in this Content model

remove

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

Specified by:
remove in interface AbstractDocument.Content
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.

getString

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

Specified by:
getString in interface AbstractDocument.Content
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.

getChars

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

Specified by:
getChars in interface AbstractDocument.Content
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.

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.