public int getOffset() { return this.node.getStartOffset(); }
/** */ public void endTagChanged(Element element) { if (element == null) return; IDOMNode notifier = (IDOMNode) element; int offset = notifier.getStartOffset(); notify(notifier, INodeNotifier.CHANGE, null, null, null, offset); propertyChanged(element); }
public void editableChanged(Node node) { if (node == null) return; IDOMNode notifier = (IDOMNode) node; int offset = notifier.getStartOffset(); notify(notifier, INodeNotifier.CHANGE, null, null, null, offset); propertyChanged(notifier); }
/** */ public void startTagChanged(Element element) { if (element == null) return; IDOMNode notifier = (IDOMNode) element; int offset = notifier.getStartOffset(); notify(notifier, INodeNotifier.CHANGE, null, null, null, offset); propertyChanged(element); }
/** * */ 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 String getValueForTextContent(List list) { String result = null; if (list.size() > 0) { IDOMNode first = (IDOMNode) list.get(0); IDOMNode last = (IDOMNode) list.get(list.size() - 1); IDOMModel model = first.getModel(); int start = first.getStartOffset(); int end = last.getEndOffset(); try { result = model.getStructuredDocument().get(start, end - start); } catch (Exception e) { } } // we trim the content so that it looks nice when viewed // we need to be carfull to preserve the 'trimmed' text when the value // is set (see setValueForTextContent) if (result != null) { result = result.trim(); } return result; }
/** * childReplaced method * * @param parentNode * org.w3c.dom.Node * @param newChild * org.w3c.dom.Node * @param oldChild * org.w3c.dom.Node */ public void childReplaced(Node parentNode, Node newChild, Node oldChild) { if (parentNode == null) return; IDOMNode notifier = (IDOMNode) parentNode; int type = INodeNotifier.CHANGE; if (newChild == null) type = INodeNotifier.REMOVE; else if (oldChild == null) type = INodeNotifier.ADD; int offset = notifier.getStartOffset(); notify(notifier, type, oldChild, oldChild, newChild, offset); structureChanged(notifier); }
void unlockDeep(IDOMNode node) { if (node == null) { return; } int offset = node.getStartOffset(); int length = node.getEndOffset() - offset; unlock(node.getStructuredDocument(), offset, length); }
public int getLength() { if (this.node.getNodeType() == Node.ELEMENT_NODE) { return ((IDOMElement) this.node).getStartEndOffset() - this.node.getStartOffset(); } return this.node.getLength(); }
protected void insertBeforeNode(IDOMNode node, String string) { IDOMModel structuredModel = node.getModel(); IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); replace(structuredDocument, node.getStartOffset(), 0, string); }
/** */ public void refreshSheet() { if (!replaceModel) { removed(); replaceModel = true; IDOMNode node = (IDOMNode) getElement(); if (node != null) { node.notify(INodeNotifier.CHANGE, getElement().getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_HREF), null, null, node.getStartOffset()); } } }
void lockData(IDOMNode node) { if (node == null) { return; } Span span = getDataSpan(node); if (0 <= span.length) { lock(node.getModel().getStructuredDocument(), node.getStartOffset() + span.offset, span.length, false, false); } }
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; }
protected IDOMNode insertStartTag(IDOMNode node) { IDOMElement element = (IDOMElement) node; if (element.isCommentTag()) return node; // do nothing IDOMNode newNode = null; 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(); replaceSource(structuredModel, structuredDocument, startTagStartOffset, 0, startTag); newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save // new // node return newNode; }
public static ITextSelection convertFromDesignSelectionToTextSelection( ISelection selection) { if (selection instanceof IStructuredSelection) { IStructuredSelection nodes = convertFromDesignSelection((IStructuredSelection) selection); IDOMNode node = (IDOMNode) nodes.getFirstElement(); if (node != null && node.getNodeType() != Node.DOCUMENT_NODE) { return new TextSelection(node.getStartOffset(), node .getEndOffset() - node.getStartOffset()); } } else if (selection instanceof DesignRange) { return convertFromDesignSelection((DesignRange) selection); } return new TextSelection(0, 0); } }
/** * This method will replace the node value with a new string. If the node * value to be replaced is the same as the new string, the node value will * not be replaced. */ protected void replaceNodeValue(IDOMNode node, String string) { IDOMModel structuredModel = node.getModel(); IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); int offset = node.getStartOffset(); int length = node.getEndOffset() - node.getStartOffset(); try { String structuredDocumentString = structuredDocument.get(offset, length); if (structuredDocumentString.compareTo(string) != 0) replace(structuredDocument, offset, length, string); } catch (BadLocationException e) { // log for now, unless we find reason not to Logger.log(Logger.INFO, e.getMessage()); } }
private Object[] getStartEndFixInfo(IDOMNode xmlNode, String tagName, ITextRegion r) { // quick fix info String tagClose = "/>"; //$NON-NLS-1$ int tagCloseOffset = xmlNode.getFirstStructuredDocumentRegion().getEndOffset(); if ((r != null) && (r.getType() == DOMRegionContext.XML_TAG_CLOSE)) { tagClose = "/"; //$NON-NLS-1$ tagCloseOffset--; } IDOMNode firstChild = (IDOMNode) xmlNode.getFirstChild(); while ((firstChild != null) && (firstChild.getNodeType() == Node.TEXT_NODE)) { firstChild = (IDOMNode) firstChild.getNextSibling(); } int endOffset = xmlNode.getEndOffset(); int firstChildStartOffset = firstChild == null ? endOffset : firstChild.getStartOffset(); Object[] additionalFixInfo = {tagName, tagClose, new Integer(tagCloseOffset), new Integer(xmlNode.getFirstStructuredDocumentRegion().getEndOffset()), // startTagEndOffset new Integer(firstChildStartOffset), // firstChildStartOffset new Integer(endOffset)}; // endOffset return additionalFixInfo; }
/** * lock itself and all descendants */ void lockDeep(IDOMNode node) { if (node == null) { return; } int offset = node.getStartOffset(); int length = node.getEndOffset() - offset; boolean canInsert = true; IDOMNode parent = (IDOMNode) node.getParentNode(); if (parent != null && !parent.isChildEditable()) { canInsert = false; } lock(node.getStructuredDocument(), offset, length, canInsert, canInsert); }
public Node cleanup(Node node) { if (node == null) return node; IDOMModel model = ((IDOMNode) node).getModel(); if (model == null) return node; IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return node; String content = getCSSContent(node); if (content == null) return node; int offset = ((IDOMNode) node).getStartOffset(); int length = ((IDOMNode) node).getEndOffset() - offset; replaceSource(model, this, offset, length, content); return (IDOMNode) model.getIndexedRegion(offset); }
private String getLineDelimiter(IDOMNode node, IStructuredDocument doc) { int line = doc.getLineOfOffset(node.getStartOffset()); String lineDelimiter = doc.getLineDelimiter(); try { if (line > 0) { lineDelimiter = doc.getLineDelimiter(line - 1); } } catch (BadLocationException e) { // log for now, unless we find reason not to Logger.log(Logger.INFO, e.getMessage()); } // BUG115716: if cannot get line delimiter from current line, just // use default line delimiter if (lineDelimiter == null) lineDelimiter = doc.getLineDelimiter(); return lineDelimiter; }