org.vectomatic.dom.svg.OMText Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lib-gwt-svg Show documentation
Show all versions of lib-gwt-svg Show documentation
A GWT library to access the SVG functionalities of web browsers
/**********************************************
* Copyright (C) 2010 Lukas Laag
* This file is part of lib-gwt-svg.
*
* libgwtsvg is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* libgwtsvg 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with libgwtsvg. If not, see http://www.gnu.org/licenses/
**********************************************/
/*
* Copyright (c) 2004 World Wide Web Consortium,
*
* (Massachusetts Institute of Technology, European Research Consortium for
* Informatics and Mathematics, Keio University). All Rights Reserved. This
* work is distributed under the W3C(r) Software License [1] 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.
*
* [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
*/
package org.vectomatic.dom.svg;
import org.vectomatic.dom.svg.utils.DOMHelper;
import org.w3c.dom.DOMException;
import com.google.gwt.core.client.JavaScriptException;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Text;
/**
* Wrapper class for DOM Text
* @author laaglu
*/
public class OMText extends OMNode {
/**
* Constructor
* @param data The text data
*/
public OMText(String data) {
this(Document.get().createTextNode(data));
}
protected OMText(Text ot) {
super(ot);
}
/**
* Returns the wrapped {@link com.google.gwt.dom.client.Text}
* @return the wrapped {@link com.google.gwt.dom.client.Text}
*/
public Text getText() {
return ot.cast();
}
// Implementation of the dom::CharacterData W3C IDL interface
/**
* The character data of the node that implements this interface. The DOM
* implementation may not put arbitrary limits on the amount of data
* that may be stored in a CharacterData
node. However,
* implementation limits may mean that the entirety of a node's data may
* not fit into a single DOMString
. In such cases, the user
* may call substringData
to retrieve the data in
* appropriately sized pieces.
* @exception DOMException
* DOMSTRING_SIZE_ERR: Raised when it would return more characters than
* fit in a DOMString
variable on the implementation
* platform.
*/
public final String getData() throws JavaScriptException {
return ((Text)ot.cast()).getData();
};
/**
* The character data of the node that implements this interface. The DOM
* implementation may not put arbitrary limits on the amount of data
* that may be stored in a CharacterData
node. However,
* implementation limits may mean that the entirety of a node's data may
* not fit into a single DOMString
. In such cases, the user
* may call substringData
to retrieve the data in
* appropriately sized pieces.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
*/
public final void setData(String value) throws JavaScriptException {
((Text)ot.cast()).setData(value);
};
/**
* The number of 16-bit units that are available through data
* and the substringData
method below. This may have the
* value zero, i.e., CharacterData
nodes may be empty.
*/
public final int getLength() {
return ((Text)ot.cast()).getLength();
};
/**
* Extracts a range of data from the node.
* @param offset Start offset of substring to extract.
* @param count The number of 16-bit units to extract.
* @return The specified substring. If the sum of offset
and
* count
exceeds the length
, then all 16-bit
* units to the end of the data are returned.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset
is
* negative or greater than the number of 16-bit units in
* data
, or if the specified count
is
* negative.
*
DOMSTRING_SIZE_ERR: Raised if the specified range of text does
* not fit into a DOMString
.
*/
public final String substringData(int offset, int count) throws JavaScriptException {
return DOMHelper.substringData((Text)ot.cast(), offset, count);
};
/**
* Append the string to the end of the character data of the node. Upon
* success, data
provides access to the concatenation of
* data
and the DOMString
specified.
* @param arg The DOMString
to append.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
public final void appendData(String arg) throws JavaScriptException {
DOMHelper.appendData((Text)ot.cast(), arg);
};
/**
* Insert a string at the specified 16-bit unit offset.
* @param offset The character offset at which to insert.
* @param arg The DOMString
to insert.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset
is
* negative or greater than the number of 16-bit units in
* data
.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
public final void insertData(int offset, String arg) throws JavaScriptException {
((Text)ot.cast()).insertData(offset, arg);
};
/**
* Remove a range of 16-bit units from the node. Upon success,
* data
and length
reflect the change.
* @param offset The offset from which to start removing.
* @param count The number of 16-bit units to delete. If the sum of
* offset
and count
exceeds
* length
then all 16-bit units from offset
* to the end of the data are deleted.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset
is
* negative or greater than the number of 16-bit units in
* data
, or if the specified count
is
* negative.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
public final void deleteData(int offset, int count) throws JavaScriptException {
((Text)ot.cast()).deleteData(offset, count);
};
/**
* Replace the characters starting at the specified 16-bit unit offset
* with the specified string.
* @param offset The offset from which to start replacing.
* @param count The number of 16-bit units to replace. If the sum of
* offset
and count
exceeds
* length
, then all 16-bit units to the end of the data
* are replaced; (i.e., the effect is the same as a remove
* method call with the same range, followed by an append
* method invocation).
* @param arg The DOMString
with which the range must be
* replaced.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset
is
* negative or greater than the number of 16-bit units in
* data
, or if the specified count
is
* negative.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
public final void replaceData(int offset, int count, String arg) throws JavaScriptException {
((Text)ot.cast()).replaceData(offset, count, arg);
};
// Implementation of the dom::Text W3C IDL interface
/**
* Breaks this node into two nodes at the specified offset
,
* keeping both in the tree as siblings. After being split, this node
* will contain all the content up to the offset
point. A
* new node of the same type, which contains all the content at and
* after the offset
point, is returned. If the original
* node had a parent node, the new node is inserted as the next sibling
* of the original node. When the offset
is equal to the
* length of this node, the new node has no data.
* @param offset The 16-bit unit offset at which to split, starting from
* 0
.
* @return The new node, of the same type as this node.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
* than the number of 16-bit units in data
.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
public final OMText splitText(int offset) throws JavaScriptException {
return new OMText(((Text)ot.cast()).splitText(offset));
};
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy