List of usage examples for com.google.gwt.dom.client Text deleteData
@Override
public void deleteData(int offset, int length)
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); } } }