All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vectomatic.dom.svg.OMText Maven / Gradle / Ivy

There is a newer version: 0.5.15
Show newest version
/**********************************************
 * 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