Examples of IDOMNode


Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

    ContentAssistRequest contentAssistRequest = null;
    IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);

    if (sdRegion != nodeAtOffset.getFirstStructuredDocumentRegion()) {
      // completing the *first* tag in "<tagname1 |<tagname2"
      IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(
          sdRegion.getStartOffset(completionRegion));
      if (actualNode != null) {
        if (actualNode.getFirstStructuredDocumentRegion() == sdRegion) {
          // start tag
          if (documentPosition > sdRegion
              .getStartOffset(completionRegion)
              + completionRegion.getLength()) {
            // it's attributes
            contentAssistRequest = new ContentAssistRequest(
                actualNode, actualNode, sdRegion,
                completionRegion, documentPosition
                    - matchString.length(),
                matchString.length(), matchString);
            if (node.getStructuredDocument()
                .getRegionAtCharacterOffset(
                    sdRegion.getStartOffset(completionRegion) - 1)
                .getRegionAtCharacterOffset(
                    sdRegion.getStartOffset(completionRegion) - 1)
                .getType() == DOMRegionContext.XML_TAG_OPEN) {
              addAttributeNameProposals(contentAssistRequest,
                  context);
            }
            addTagCloseProposals(contentAssistRequest, context);
          } else {
            // it's name
            contentAssistRequest = new ContentAssistRequest(
                actualNode, actualNode.getParentNode(),
                sdRegion, completionRegion, documentPosition
                    - matchString.length(),
                matchString.length(), matchString);
            addTagNameProposals(contentAssistRequest,
                getElementPosition(actualNode), context);
          }
        } else {
          if (documentPosition >= sdRegion
              .getStartOffset(completionRegion)
              + completionRegion.getLength()) {
            // insert name
            contentAssistRequest = new ContentAssistRequest(
                actualNode, actualNode.getParentNode(),
                sdRegion, completionRegion, documentPosition,
                0, matchString);
          } else {
            // replace name
            contentAssistRequest = new ContentAssistRequest(
                actualNode, actualNode.getParentNode(),
                sdRegion, completionRegion,
                sdRegion.getStartOffset(completionRegion),
                completionRegion.getTextLength(), matchString);
          }
          addEndTagNameProposals(contentAssistRequest, context);
        }
      }
    } else {
      if (documentPosition > sdRegion.getStartOffset(completionRegion)
          + completionRegion.getTextLength()) {
        // unclosed tag with only a name; should prompt for attributes
        // and a close instead
        contentAssistRequest = new ContentAssistRequest(nodeAtOffset,
            node, sdRegion, completionRegion, documentPosition
                - matchString.length(), matchString.length(),
            matchString);
        addAttributeNameProposals(contentAssistRequest, context);
        addTagCloseProposals(contentAssistRequest, context);
      } else {
        if (sdRegion.getRegions().get(0).getType() != DOMRegionContext.XML_END_TAG_OPEN) {
          int replaceLength = documentPosition
              - sdRegion.getStartOffset(completionRegion);
          contentAssistRequest = new ContentAssistRequest(node,
              node.getParentNode(), sdRegion, completionRegion,
              sdRegion.getStartOffset(completionRegion),
              replaceLength, matchString);
          addTagNameProposals(contentAssistRequest,
              getElementPosition(nodeAtOffset), context);
        } else {
          IDOMNode actualNode = (IDOMNode) node.getModel()
              .getIndexedRegion(documentPosition);
          if (actualNode != null) {
            if (documentPosition >= sdRegion
                .getStartOffset(completionRegion)
                + completionRegion.getTextLength()) {
              contentAssistRequest = new ContentAssistRequest(
                  actualNode, actualNode.getParentNode(),
                  sdRegion, completionRegion,
                  documentPosition, 0, matchString);
            } else {
              contentAssistRequest = new ContentAssistRequest(
                  actualNode, actualNode.getParentNode(),
                  sdRegion, completionRegion,
                  sdRegion.getStartOffset(completionRegion),
                  completionRegion.getTextLength(),
                  matchString);
            }
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

    IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
    if (sdRegion != nodeAtOffset.getFirstStructuredDocumentRegion()
        || sdRegion.getPrevious() != null
        && sdRegion.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_TAG_OPEN) {
      // completing the *first* XML_TAG_OPEN in "<<tagname"
      IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(
          sdRegion.getStartOffset(completionRegion));
      if (actualNode != null) {
        if (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN) {
          contentAssistRequest = new ContentAssistRequest(actualNode,
              actualNode, sdRegion, completionRegion,
              documentPosition, 0, matchString);
          if (actualNode.hasChildNodes())
            addTagNameProposals(contentAssistRequest,
                getElementPosition(actualNode.getLastChild()),
                context);
          else
            addTagNameProposals(contentAssistRequest, 0, context);
        } else {
          contentAssistRequest = new ContentAssistRequest(actualNode,
              actualNode.getParentNode(), sdRegion,
              completionRegion, documentPosition, 0, matchString);
          addTagNameProposals(contentAssistRequest,
              getElementPosition(actualNode), context);
        }
        addEndTagProposals(contentAssistRequest, context); // (pa)
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

    }

    ITextRegion region = null;
    int offset = documentPosition;
    IStructuredDocumentRegion flatNode = null;
    IDOMNode node = (IDOMNode) domnode;

    if (node.getNodeType() == Node.DOCUMENT_NODE) {
      if (node.getStructuredDocument().getLength() == 0) {
        return null;
      }
      ITextRegion result = node.getStructuredDocument()
          .getRegionAtCharacterOffset(offset)
          .getRegionAtCharacterOffset(offset);
      while (result == null) {
        offset--;
        result = node.getStructuredDocument()
            .getRegionAtCharacterOffset(offset)
            .getRegionAtCharacterOffset(offset);
      }
      return result;
    }

    IStructuredDocumentRegion startTag = node
        .getStartStructuredDocumentRegion();
    IStructuredDocumentRegion endTag = node
        .getEndStructuredDocumentRegion();

    // Determine if the offset is within the start
    // IStructuredDocumentRegion, end IStructuredDocumentRegion, or
    // somewhere within the Node's XML content.
    if ((startTag != null) && (startTag.getStartOffset() <= offset)
        && (offset < startTag.getStartOffset() + startTag.getLength())) {
      flatNode = startTag;
    } else if ((endTag != null) && (endTag.getStartOffset() <= offset)
        && (offset < endTag.getStartOffset() + endTag.getLength())) {
      flatNode = endTag;
    }

    if (flatNode != null) {
      // the offset is definitely within the start or end tag, continue
      // on and find the region
      region = getCompletionRegion(offset, flatNode);
    } else {
      // Start test code added by Gavin Lei
      System.out
          .println("Build ITextRegion instance with char '< or $' start    node instance:"
              + node.getClass());
      IStructuredDocumentRegion preFlatNode = node
          .getStructuredDocument().getRegionAtCharacterOffset(
              offset - 1);
      System.out.println(node.getStructuredDocument().getClass());
      System.out.println(preFlatNode.getPrevious().toString());

      // the docPosition is neither within the start nor the end, so it
      // must be content
      flatNode = node.getStructuredDocument().getRegionAtCharacterOffset(
          offset);

      // (pa) ITextRegion refactor
      // if (flatNode.contains(documentPosition)) {
      if ((flatNode.getStartOffset() <= documentPosition)
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

    // no end tag
    int offset = element.getEndOffset();
    StringBuffer buffer = new StringBuffer();

    IDOMNode lastChild = (IDOMNode) element.getLastChild();
    if (lastChild == null) {
      if (!element.isStartTagClosed()) {
        if (element.preferEmptyTag())
          element.setEmptyTag(true);
        String closeTag = getStartCloseTag(element);
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

   * @return org.w3c.dom.Node
   * @param offset
   *            int
   */
  Node getNodeAt(int offset) {
    IDOMNode parent = this;
    IDOMNode child = (IDOMNode) getFirstChild();
    while (child != null) {
      if (child.getEndOffset() <= offset) {
        child = (IDOMNode) child.getNextSibling();
        continue;
      }
      if (child.getStartOffset() > offset) {
        break;
      }

      IStructuredDocumentRegion startStructuredDocumentRegion = child.getStartStructuredDocumentRegion();
      if (startStructuredDocumentRegion != null) {
        if (startStructuredDocumentRegion.getEnd() > offset)
          return child;
      }

View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

    notifyEditableChanged();
  }

  public void setEditable(boolean editable, boolean deep) {
    if (deep) {
      IDOMNode node = (IDOMNode) getFirstChild();
      while (node != null) {
        node.setEditable(editable, deep);
        node = (IDOMNode) node.getNextSibling();
      }
    }
    setChildEditable(editable);
    setDataEditable(editable);
  }
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

    }
    if (newAttr != null) {
      attr = newAttr;
      newValue = newAttr.getValue();
    }
    IDOMNode notifier = (IDOMNode) element;
    int offset = notifier.getStartOffset();
    notify(notifier, INodeNotifier.CHANGE, attr, oldValue, newValue, offset);
    propertyChanged(notifier);
  }
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

   *            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);
  }
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

  }

  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);
  }
View Full Code Here

Examples of org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode

  /**
   */
  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);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.