/** * */ private StructuredDocumentEvent removeText(int start, int length) { StructuredDocumentEvent result = null; IStructuredDocument structuredDocument = fModel.getStructuredDocument(); if (structuredDocument != null) { result = structuredDocument.replaceText(fModel, start, length, new String(""));//$NON-NLS-1$ } return result; }
/** * Wraps IStructuredDocumentRegion.replaceText() and sets contextual * information. */ private void replaceSource(String source, int start, int end) { int inserted = 0; if (source == null) source = new String(); else inserted = source.length(); int removed = end - start; if (inserted == 0 && removed == 0) return; this.gapOffset = start; this.gapLength = removed; this.diff = inserted - removed; // Note: due to bug // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3619 // for now assume "ignore readonly" region is ok -- assume DOM itself // checks if // ok to insert or not. In reality, we may have to make or "contains" // method more // better. Or, we may have to "perculate up" the parameter for clients // to tell us programatically // that its ok to insert/format in a read-only region. getStructuredDocument().replaceText(this.model, this.gapOffset, this.gapLength, source, true); }
protected void setStructuredDocumentRegionElementName(IDOMModel model, IStructuredDocumentRegion flatNode, String oldName, String newName) { if (flatNode != null) { String string = flatNode.getText(); int index = string.indexOf(oldName); if (index != -1) { index += flatNode.getStart(); model.getStructuredDocument().replaceText(this, index, oldName.length(), newName); } } } }
static protected StructuredDocumentEvent replaceSource(IDOMModel model, Object requester, int offset, int length, String source) { StructuredDocumentEvent result = null; if (model == null) return result; IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return result; if (source == null) source = new String(); if (structuredDocument.containsReadOnly(offset, length)) return result; if (requester == null) { requester = structuredDocument; } return structuredDocument.replaceText(requester, offset, length, source); }
/** * */ protected void setValueForTextContent(List list, String value) { // String oldValue = getValueForTextContent(); // we worry about preserving trimmed text if (list.size() > 0) { IDOMNode first = (IDOMNode) list.get(0); IDOMNode last = (IDOMNode) list.get(list.size() - 1); int start = first.getStartOffset(); int end = last.getEndOffset(); first.getModel().getStructuredDocument().replaceText(this, start, end - start, value); } }
/** */ protected void replaceSource(IDOMModel model, int offset, int length, String source) { if (model == null) return; IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return; if (source == null) source = new String(); if (structuredDocument.containsReadOnly(offset, length)) return; // We use 'structuredDocument' as the requester object just so this // and the other // format-related 'repalceText' (in replaceSource) can use the same // requester. // Otherwise, if requester is not identical, // the undo group gets "broken" into multiple pieces based // on the requesters being different. Technically, any unique, common // requester object would work. structuredDocument.replaceText(structuredDocument, offset, length, source); }
/** * cleanup -> rebuild CSS Nodes This is pre-beta fix for 178176. */ public void refreshNodes() { // cleanup old nodes fStructuredDocumentUpdate = true; ((CSSStructuredDocumentRegionContainer) getDocument()).removeChildNodes(); fStructuredDocumentUpdate = false; getParser().cleanupUpdateContext(); IStructuredDocument structuredDocument = getStructuredDocument(); String source = structuredDocument.getText(); structuredDocument.replaceText(this, 0, source.length(), null); structuredDocument.replaceText(this, 0, 0, source); }
return; // no change else if (start == oldData.length()) { structuredDocument.replaceText(getRequesterH2C(), start, 0, data.substring(start)); // append text to last structuredDocument.replaceText(getRequesterH2C(), start, oldData.length() - start, ""); // remove text of last //$NON-NLS-1$ break; structuredDocument.replaceText(getRequesterH2C(), start, oldData.length() - end - start, data.substring(start, data.length() - end));
/** * This method will replace the string at offset and length with a new * string. If the string to be replaced is the same as the new string, the * string will not be replaced. */ protected void replace(IStructuredDocument structuredDocument, int offset, int length, String string) { try { String structuredDocumentString = structuredDocument.get(offset, length); if (structuredDocumentString.compareTo(string) != 0) structuredDocument.replaceText(structuredDocument, offset, length, string); } catch (BadLocationException e) { // log for now, unless we find reason not to Logger.log(Logger.INFO, e.getMessage()); } }
/** */ public void replaceSource(IStructuredModel model, int offset, int length, String source) { if (model == null) return; IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return; if (offset >= 0 && length >= 0 && offset + length <= structuredDocument.getLength()) { if (structuredDocument.containsReadOnly(offset, length)) return; if (source == null) source = new String(); // We use 'structuredDocument' as the requester object just so // this and the other // format-related 'repalceText' (in replaceSource) can use the // same requester. // Otherwise, if requester is not identical, // the undo group gets "broken" into multiple pieces based // on the requesters being different. Technically, any unique, // common // requester object would work. structuredDocument.replaceText(structuredDocument, offset, length, source); } }
/** */ protected void replaceSource(IStructuredDocumentRegion flatNode, int offset, int length, String source) { if (flatNode == null) return; IStructuredDocument structuredDocument = flatNode.getParentDocument(); if (structuredDocument == null) return; if (source == null) source = new String(); int startOffset = flatNode.getStartOffset(); if (structuredDocument.containsReadOnly(startOffset + offset, length)) return; // We use 'structuredDocument' as the requester object just so this // and the other // format-related 'repalceText' (in replaceSource) can use the same // requester. // Otherwise, if requester is not identical, // the undo group gets "broken" into multiple pieces based // on the requesters being different. Technically, any unique, common // requester object would work. structuredDocument.replaceText(structuredDocument, startOffset + offset, length, source); }
private IDOMNode insertStartTag(IDOMNode node) { IDOMNode newNode = node; if (isCommentTag(node)) return node; // do nothing String tagName = node.getNodeName(); String startTag = START_TAG_OPEN.concat(tagName).concat(TAG_CLOSE); int startTagStartOffset = node.getStartOffset(); IDOMModel structuredModel = node.getModel(); IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); structuredDocument.replaceText(structuredDocument, startTagStartOffset, 0, startTag); newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save // new // node return newNode; }
private IDOMNode compressEmptyElementTag(IDOMNode node) { boolean compressEmptyElementTags = getCleanupPreferences().getCompressEmptyElementTags(); IDOMNode newNode = node; IStructuredDocumentRegion startTagStructuredDocumentRegion = newNode.getFirstStructuredDocumentRegion(); IStructuredDocumentRegion endTagStructuredDocumentRegion = newNode.getLastStructuredDocumentRegion(); if (compressEmptyElementTags && startTagStructuredDocumentRegion != endTagStructuredDocumentRegion && startTagStructuredDocumentRegion != null) { ITextRegionList regions = startTagStructuredDocumentRegion.getRegions(); ITextRegion lastRegion = regions.get(regions.size() - 1); // format children and end tag if not empty element tag if (lastRegion.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE) { NodeList childNodes = newNode.getChildNodes(); if (childNodes == null || childNodes.getLength() == 0 || (childNodes.getLength() == 1 && (childNodes.item(0)).getNodeType() == Node.TEXT_NODE && ((childNodes.item(0)).getNodeValue().trim().length() == 0))) { IDOMModel structuredModel = newNode.getModel(); IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); int startTagStartOffset = newNode.getStartOffset(); int offset = endTagStructuredDocumentRegion.getStart(); int length = endTagStructuredDocumentRegion.getLength(); structuredDocument.replaceText(structuredDocument, offset, length, ""); //$NON-NLS-1$ newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save offset = startTagStructuredDocumentRegion.getStart() + lastRegion.getStart(); structuredDocument.replaceText(structuredDocument, offset, 0, "/"); //$NON-NLS-1$ newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save } } } return newNode; }
/** */ public void setRuntimeSource(String source) { if (source == null) return; if (this.element == null) return; if (isRuntimeContainer()) return; IDOMModel model = this.element.getModel(); if (model == null) return; IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return; int offset = this.element.getStartEndOffset(); int end = this.element.getEndStartOffset(); int length = end - offset; structuredDocument.replaceText(model, offset, length, source); } }
/** * @param cssText * java.lang.String */ public void setCssText(String cssText) { if (firstStructuredDocumentRegion != null) { getOwnerDocument().getModel().getStructuredDocument().replaceText(this, getStartOffset(), getEndOffset() - getStartOffset(), cssText); } else super.setCssText(cssText); }
private void insertTagClose(IDOMModel structuredModel, IStructuredDocumentRegion flatNode) { if (flatNode != null) { ITextRegionList flatnodeRegions = flatNode.getRegions(); if (flatnodeRegions != null) { ITextRegion lastRegion = flatnodeRegions.get(flatnodeRegions.size() - 1); if (lastRegion != null) { String regionType = lastRegion.getType(); if ((regionType != DOMRegionContext.XML_EMPTY_TAG_CLOSE) && (regionType != DOMRegionContext.XML_TAG_CLOSE)) { IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); // insert ">" after lastRegion of flatNode // as in "<a</a>" if flatNode is for start tag, or in // "<a></a" if flatNode is for end tag structuredDocument.replaceText(structuredDocument, flatNode.getTextEndOffset(lastRegion), 0, ">"); //$NON-NLS-1$ } } } } }
/** * Apply changes from CSS sub-model to HTML model */ private void replaceData(int offset, int length, String data) { IDOMNode element = (IDOMNode) getElement(); if (element == null) return; IDOMModel ownerModel = element.getModel(); if (ownerModel == null) return; IStructuredDocument structuredDocument = ownerModel.getStructuredDocument(); if (structuredDocument == null) return; IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion(); if (flatNode == null) return; int contentOffset = flatNode.getEndOffset(); if (data == null) data = "";//$NON-NLS-1$ this.ignoreNotification = true; structuredDocument.replaceText(getRequesterC2H(), contentOffset + offset, length, data); this.ignoreNotification = false; }
domElement.getModel().getStructuredDocument().replaceText(documentationElement, start, end - start, newValue);
ITextRegionList regions = startStructuredDocumentRegion.getRegions(); ITextRegion lastRegion = regions.get(regions.size() - 1); structuredDocument.replaceText(structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), lastRegion.getLength(), EMPTY_TAG_CLOSE); structuredDocument.replaceText(structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), 0, " "); //$NON-NLS-1$ structuredDocument.replaceText(structuredDocument, endTagStartOffset, 0, endTag);
CSSRuleImpl refRule = (length != index) ? getIndexedRule(index) : null; int offset = (refRule != null) ? refRule.getStartOffset() : doc.getLength(); doc.replaceText(this, offset, 0, rule);