Example usage for com.google.gwt.dom.client Text deleteData

List of usage examples for com.google.gwt.dom.client Text deleteData

Introduction

In this page you can find the example usage for com.google.gwt.dom.client Text deleteData.

Prototype

@Override
    public void deleteData(int offset, int length) 

Source Link

Usage

From source file:org.waveprotocol.wave.client.editor.content.ContentTextNode.java

License:Apache License

/**
 * @see RawDocument#deleteData(Object, int, int)
 *///from  w  w  w .j  av  a  2  s  . co  m
void deleteData(int offset, int count, boolean affectImpl) {
    String data = getData();

    setContentData(data.substring(0, offset) + data.substring(offset + count, data.length()));

    if (affectImpl) {
        if (isImplAttached()) {
            findNodeletWithOffset(offset, nodeletOffsetOutput, getRepairer());
            Text nodelet = nodeletOffsetOutput.getNode().cast();
            int subOffset = nodeletOffsetOutput.getOffset();

            if (nodelet.getLength() - subOffset >= count) {
                // Handle the special case where the delete is in a single text nodelet
                // carefully, to avoid splitting it
                nodelet.deleteData(subOffset, count);
                getExtendedContext().editing().textNodeletAffected(nodelet, subOffset, -count,
                        TextNodeChangeType.DATA);
            } else {
                // General case
                Node toExcl = implSplitText(offset + count);
                Node fromIncl = implSplitText(offset);

                HtmlView filteredHtml = getFilteredHtmlView();
                for (Node node = fromIncl; node != toExcl && node != null;) {
                    Node next = filteredHtml.getNextSibling(node);
                    node.removeFromParent();
                    node = next;
                }
            }
        } else {
            // TODO(user): have these assertion failure fixed (b/2129931)
            // assert getImplNodelet().getLength() == getLength() :
            //    "text node's html impl not normalised while not attached to html dom";
            getImplNodelet().deleteData(offset, count);
        }
    }
}