javax.swing.text
Class DefaultStyledDocument.ElementBuffer
- DefaultStyledDocument
- Serializable
Performs all structural changes to the Element
hierarchy. This class was implemented with much help from the document:
http://java.sun.com/products/jfc/tsc/articles/text/element_buffer/index.html.
void | change(int offset, int length, AbstractDocument.DefaultDocumentEvent ev) - Modifies the element structure so that the specified interval starts and
ends at an element boundary.
|
protected void | changeUpdate() - Performs the actual work for
change(int,int,AbstractDocument.DefaultDocumentEvent) .
|
Element | clone(Element parent, Element clonee) - Creates and returns a deep clone of the specified
clonee
with the specified parent as new parent.
|
Element | getRootElement() - Returns the root element of this
ElementBuffer .
|
void | insert(int offset, int length, DefaultStyledDocument.ElementSpec[] data, AbstractDocument.DefaultDocumentEvent ev) - Inserts new
Element in the document at the specified
position.
|
protected void | insertUpdate(DefaultStyledDocument.ElementSpec[] data) - Inserts new content.
|
void | remove(int offs, int len, AbstractDocument.DefaultDocumentEvent ev) - Removes the content.
|
protected void | removeUpdate() - Updates the element structure of the document in response to removal of
content.
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
ElementBuffer
public ElementBuffer(Element root)
Creates a new ElementBuffer
for the specified
root
element.
root
- the root element for this ElementBuffer
change
public void change(int offset,
int length,
AbstractDocument.DefaultDocumentEvent ev)
Modifies the element structure so that the specified interval starts and
ends at an element boundary. Content and paragraph elements are split and
created as necessary. This also updates the
DefaultDocumentEvent
to reflect the structural changes.
The bulk work is delegated to
changeUpdate()
.
offset
- the start index of the interval to be changedlength
- the length of the interval to be changedev
- the DefaultDocumentEvent
describing the change
clone
public Element clone(Element parent,
Element clonee)
parent
- the new parentclonee
- the element to be cloned
- the cloned element with the new parent
getRootElement
public Element getRootElement()
Returns the root element of this ElementBuffer
.
- the root element of this
ElementBuffer
insert
public void insert(int offset,
int length,
DefaultStyledDocument.ElementSpec[] data,
AbstractDocument.DefaultDocumentEvent ev)
offset
- the location in the document at which the content is insertedlength
- the length of the inserted contentdata
- the element specifications for the content to be insertedev
- the document event that is updated to reflect the structural
changes
remove
public void remove(int offs,
int len,
AbstractDocument.DefaultDocumentEvent ev)
Removes the content. This method sets some internal parameters and
delegates the work to
removeUpdate()
.
offs
- the offset from which content is removelen
- the length of the removed contentev
- the document event that records the changes
removeUpdate
protected void removeUpdate()
Updates the element structure of the document in response to removal of
content. It removes the affected
Element
s from the document
structure.
DefaultStyledDocument.java --
Copyright (C) 2004, 2005 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.