javax.swing.text

Class StringContent

Implemented Interfaces:
AbstractDocument.Content, Serializable

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<T>
getPositionsInRange(Vector<T> 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<T> 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, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

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 Details

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.
Throws:
BadLocationException - if offset is 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.

getPositionsInRange

protected Vector<T> getPositionsInRange(Vector<T> v,
                                     int offset,
                                     int length)

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.

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.

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.

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.

updateUndoPositions

protected void updateUndoPositions(Vector<T> 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.

StringContent.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.