Examples of IDOMNode


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

   * @param formatRange
   */
  private void formatSiblings(TextEdit edit, DOMRegion domRegion, XMLFormattingConstraints parentConstraints, Position formatRange) {
    IStructuredDocumentRegion previousRegion = null;
    IStructuredDocumentRegion currentRegion = domRegion.documentRegion;
    IDOMNode currentDOMNode = domRegion.domNode;
    while (currentDOMNode != null && currentRegion != null && formatRange.overlapsWith(currentRegion.getStartOffset(), currentRegion.getLength()) && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
      domRegion.documentRegion = currentRegion;
      domRegion.domNode = currentDOMNode;

      // need to make sure current document region and current
      // dom node match up
      if (currentDOMNode.getFirstStructuredDocumentRegion().equals(currentRegion)) {
        // format this document region/node, formatRegion will
        // return the last node/region formatted
        domRegion = formatRegion(edit, formatRange, parentConstraints, domRegion, previousRegion);
      }
      else {
View Full Code Here

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

   */
  private DOMRegion formatStartTag(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousDocumentRegion) {
    // determine proper indent by referring to parent constraints,
    // previous node, and current node
    IStructuredDocumentRegion currentDocumentRegion = currentDOMRegion.documentRegion;
    IDOMNode currentDOMNode = currentDOMRegion.domNode;

    // create a constraint for this tag
    XMLFormattingConstraints thisConstraints = new XMLFormattingConstraints();
    XMLFormattingConstraints childrenConstraints = new XMLFormattingConstraints();
    updateFormattingConstraints(parentConstraints, thisConstraints, childrenConstraints, currentDOMRegion);

    if(XMLFormattingConstraints.DEFAULT.equals(childrenConstraints.getWhitespaceStrategy()))
      childrenConstraints.setWhitespaceStrategy((new XMLFormattingPreferences()).getElementWhitespaceStrategy());
     
    String whitespaceStrategy = thisConstraints.getWhitespaceStrategy();
    String indentStrategy = thisConstraints.getIndentStrategy();
    int availableLineWidth = thisConstraints.getAvailableLineWidth();

    // format space before start tag
    // do not format space before start tag if preserving spaces
    if (!XMLFormattingConstraints.PRESERVE.equals(whitespaceStrategy)) {
      // format like indent strategy says
      if (XMLFormattingConstraints.INDENT.equals(indentStrategy) || XMLFormattingConstraints.NEW_LINE.equals(indentStrategy)) {
        availableLineWidth = indentIfPossible(textEdit, thisConstraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true, true);
        if (availableLineWidth > 0)
          thisConstraints.setAvailableLineWidth(availableLineWidth);
      }
    }
    // format the start tag itself
    boolean tagEnded = formatWithinTag(textEdit, thisConstraints, currentDocumentRegion, previousDocumentRegion);

    // format children
    if (!tagEnded) {
      // update childConstraints with thisConstraint's indentLevel &
      // availableLineWidth
      childrenConstraints.setIndentLevel(thisConstraints.getIndentLevel());
      childrenConstraints.setAvailableLineWidth(thisConstraints.getAvailableLineWidth());

      previousDocumentRegion = currentDocumentRegion;
      IDOMNode childDOMNode = (IDOMNode) currentDOMNode.getFirstChild();
      IStructuredDocumentRegion nextRegion = currentDocumentRegion.getNext();
      boolean passedFormatRange = false;
      // as long as there is one child
      if (childDOMNode != null && nextRegion != null) {
        while (childDOMNode != null && nextRegion != null && !passedFormatRange && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
          DOMRegion childDOMRegion = new DOMRegion();
          childDOMRegion.documentRegion = nextRegion;
          childDOMRegion.domNode = childDOMNode;
          if (nextRegion.equals(childDOMNode.getFirstStructuredDocumentRegion())) {
            // format children. pass in child constraints
            childDOMRegion = formatRegion(textEdit, formatRange, childrenConstraints, childDOMRegion, previousDocumentRegion);
          }
          else {
            // TODO: what happens if they dont match up?
View Full Code Here

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

   * @param currentDOMRegion
   *            cannot be null
   */
  protected void updateFormattingConstraints(XMLFormattingConstraints parentConstraints, XMLFormattingConstraints thisConstraints, XMLFormattingConstraints childConstraints, DOMRegion currentDOMRegion) {
    IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
    IDOMNode currentNode = currentDOMRegion.domNode;

    // default to whatever parent's constraint said to do
    if (parentConstraints != null) {
      if (thisConstraints != null) {
        thisConstraints.copyConstraints(parentConstraints);
      }
      if (childConstraints != null) {
        childConstraints.copyConstraints(parentConstraints);
        // if whitespace strategy was only a hint, null it out so
        // defaults are taken instead
        if (parentConstraints.isWhitespaceStrategyAHint())
          childConstraints.setWhitespaceStrategy(null);
      }
    }

    // set up constraints for direct children of document root
    Node parentNode = currentNode.getParentNode();
    if (parentNode != null && parentNode.getNodeType() == Node.DOCUMENT_NODE) {
      if (thisConstraints != null) {
        thisConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
        thisConstraints.setIndentStrategy(XMLFormattingConstraints.NEW_LINE);
        thisConstraints.setIndentLevel(0);
      }
      if (childConstraints != null) {
        childConstraints.setWhitespaceStrategy(null);
        childConstraints.setIndentStrategy(null);
        childConstraints.setIndentLevel(0);
      }
    }

    // other conditions to check when setting up child constraints
    if (childConstraints != null) {
      XMLFormattingPreferences preferences = getFormattingPreferences();

      // if we're at document root, child tags should always just start
      // on a new line and have an indent level of 0
      if (currentNode.getNodeType() == Node.DOCUMENT_NODE) {
        childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
        childConstraints.setIndentStrategy(XMLFormattingConstraints.NEW_LINE);
        childConstraints.setIndentLevel(0);
      }
      else {
        // BUG108074 & BUG84688 - preserve whitespace in xsl:text &
        // xsl:attribute
        String nodeNamespaceURI = currentNode.getNamespaceURI();
        if (XSL_NAMESPACE.equals(nodeNamespaceURI)) {
          String nodeName = ((Element) currentNode).getLocalName();
          if (XSL_ATTRIBUTE.equals(nodeName) || XSL_TEXT.equals(nodeName)) {
            childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
          }
        }
        else {
          // search within current tag for xml:space attribute
          ITextRegionList textRegions = currentRegion.getRegions();
          int i = 0;
          boolean xmlSpaceFound = false;
          boolean preserveFound = false;
          while (i < textRegions.size() && !xmlSpaceFound) {
            ITextRegion textRegion = textRegions.get(i);
            if (DOMRegionContext.XML_TAG_ATTRIBUTE_NAME.equals(textRegion.getType())) {
              String regionText = currentRegion.getText(textRegion);
              if (XML_SPACE.equals(regionText)) {
                if ((i + 1) < textRegions.size()) {
                  ++i;
                  textRegion = textRegions.get(i);
                  if (DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS.equals(textRegion.getType()) && ((i + 1) < textRegions.size())) {
                    ++i;
                    textRegion = textRegions.get(i);
                    regionText = currentRegion.getText(textRegion);
                    if (PRESERVE.equals(regionText) || PRESERVE_QUOTED.equals(regionText)) {
                      preserveFound = true;
                    }
                  }
                }
                xmlSpaceFound = true;
              }
            }
            ++i;
          }
          if (xmlSpaceFound) {
            if (preserveFound) {
              // preserve was found so set the strategy
              childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
            }
            else {
              // xml:space was found but it was not collapse, so
              // use default whitespace strategy
              childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.DEFAULT);
            }
          }
          else {
            // how to hande nodes that have nonwhitespace text
            // content
            NodeList nodeList = currentNode.getChildNodes();
            int length = nodeList.getLength();
            int index = 0;
            boolean textNodeFound = false;
            // BUG214516 - If the parent constraint is to preserve whitespace, child constraints should
            // still reflect the parent constraints
            while (index < length && !textNodeFound && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
              Node childNode = nodeList.item(index);
              if (childNode.getNodeType() == Node.TEXT_NODE) {
                textNodeFound = !((IDOMText) childNode).isElementContentWhitespace();
              }
              ++index;
            }
            if (textNodeFound) {
              if (length > 1) {
                // more in here than just text, so consider
                // this mixed content
                childConstraints.setWhitespaceStrategy(preferences.getMixedWhitespaceStrategy());
                childConstraints.setIndentStrategy(preferences.getMixedIndentStrategy());
              }
              else {
                // there's only text
                childConstraints.setWhitespaceStrategy(preferences.getTextWhitespaceStrategy());
                childConstraints.setIndentStrategy(preferences.getTextIndentStrategy());
              }
              childConstraints.setIsWhitespaceStrategyAHint(true);
              childConstraints.setIsIndentStrategyAHint(true);
            }

            // try referring to content model for information on
            // whitespace & indent strategy
            ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) currentNode.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
            CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(currentNode);
            if (elementDeclaration != null) {
              // follow whitespace strategy preference for
              // pcdata content
              int contentType = elementDeclaration.getContentType();
View Full Code Here

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

  public String getErrorMessage() {
    return null;
  }

  private void getInsertRequiredAttrs(List proposals, ISourceViewer viewer, int offset) {
    IDOMNode node = (IDOMNode) getNodeAt(viewer, offset);
    if ((node != null) && (node.getNodeType() == Node.ELEMENT_NODE)) {
      IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
      if ((startStructuredDocumentRegion != null) && startStructuredDocumentRegion.containsOffset(offset)) {
        IDOMNode cursorNode = (IDOMNode) getNodeAt(viewer, offset);
        List requiredAttrs = getRequiredAttrs(cursorNode);
        if (requiredAttrs.size() > 0) {
          NamedNodeMap currentAttrs = node.getAttributes();
          List insertAttrs = new ArrayList();
          if (currentAttrs.getLength() == 0) {
View Full Code Here

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

      }
    }
  }

  private void getLocalRenameQuickAssistProposal(List proposals, ISourceViewer viewer, int offset) {
    IDOMNode node = (IDOMNode) getNodeAt(viewer, offset);
    IStructuredDocumentRegion startStructuredDocumentRegion = node == null ? null : node.getStartStructuredDocumentRegion();
    IStructuredDocumentRegion endStructuredDocumentRegion = node == null ? null : node.getEndStructuredDocumentRegion();

    ITextRegion region = null;
    int regionTextEndOffset = 0;
    if ((startStructuredDocumentRegion != null) && startStructuredDocumentRegion.containsOffset(offset)) {
      region = startStructuredDocumentRegion.getRegionAtCharacterOffset(offset);
View Full Code Here

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

    return result;
  }

  private void getSurroundWithNewElementQuickAssistProposal(List proposals, ISourceViewer viewer, int offset) {
    IDOMNode node = (IDOMNode) getNodeAt(viewer, offset);
    if (node != null) {
      proposals.add(new SurroundWithNewElementQuickAssistProposal());
    }
  }
View Full Code Here

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

        }
        else if (ATTRIBUTE_NAME.equals(selectionStrategy)) { // in
          // underline the attribute's name
          if (node.getNodeType() == Node.ELEMENT_NODE) {
            IDOMElement element = (IDOMElement) node;
            IDOMNode attributeNode = (IDOMNode) (element.getAttributeNode(nameOrValue));
            if (attributeNode != null) {
              startEndPositions[0] = attributeNode.getStartOffset();
              startEndPositions[1] = attributeNode.getStartOffset() + nameOrValue.length();
            }
          }
        }
        else if (ATTRIBUTE_VALUE.equals(selectionStrategy)) {
          // underline the attribute's value
          if (node.getNodeType() == Node.ELEMENT_NODE) {
            IDOMElement element = (IDOMElement) node;
            IDOMAttr attributeNode = (IDOMAttr) (element.getAttributeNode(nameOrValue));
            if (attributeNode != null) {
              startEndPositions[0] = attributeNode.getValueRegionStartOffset();
              String valueRegionText = attributeNode.getValueRegionText();
              int valueRegionLength = valueRegionText == null ? 0 : valueRegionText.length();
              startEndPositions[1] = startEndPositions[0] + valueRegionLength;
            }
          }
        }
        else if (ALL_ATTRIBUTES.equals(selectionStrategy)) {
          // underline all attributes
          if (node.getNodeType() == Node.ELEMENT_NODE) {
            IDOMElement element = (IDOMElement) node;
            NamedNodeMap attributes = element.getAttributes();
            if (attributes != null) {
              IDOMNode first = (IDOMNode) attributes.item(0);
              IDOMNode last = (IDOMNode) attributes.item(attributes.getLength() - 1);
              if ((first != null) && (last != null)) {
                startEndPositions[0] = first.getStartOffset();
                startEndPositions[1] = last.getEndOffset();
              }
            }
          }
        }
        else if (TEXT.equals(selectionStrategy)) {
          // underline the text between the tags
          if (node.getNodeType() == Node.TEXT_NODE) {
            IDOMText textNode = (IDOMText) node;
            int start = textNode.getStartOffset();
            String value = textNode.getNodeValue();
            int index = 0;
            char curChar = value.charAt(index);
            // here we are finding start offset by skipping over
            // whitespace:
            while ((curChar == '\n') || (curChar == '\t') || (curChar == '\r') || (curChar == ' ')) {
              curChar = value.charAt(index);
              index++;
            }
            if (index > 0) {
              index--;

            }
            start = start + index;
            startEndPositions[0] = start;
            startEndPositions[1] = start + value.trim().length();
          }
          else if (node.getNodeType() == Node.ELEMENT_NODE) {
            IDOMElement element = (IDOMElement) node;
            Node child = element.getFirstChild();
            if (child instanceof IDOMNode) {
              IDOMNode xmlChild = ((IDOMNode) child);
              startEndPositions[0] = xmlChild.getStartOffset();
              startEndPositions[1] = xmlChild.getEndOffset();
            }
          }
        }
        else if (FIRST_NON_WHITESPACE_TEXT.equals(selectionStrategy)) {
          // search through all child nodes and return range of
          // first non-whitespace
          // text node
          if (node.getNodeType() == Node.ELEMENT_NODE) {
            NodeList nodes = node.getChildNodes();
            for (int i = 0; i < nodes.getLength(); i++) {
              Node currentNode = nodes.item(i);
              if (currentNode.getNodeType() == Node.TEXT_NODE) {
                // TODO (Trung) I don't think we should call
                // getNodeValue(), trim(), length()
                // repeatedly.
                // This is inefficient, to improve use local
                // variables to store values.
                IDOMText textNode = (IDOMText) currentNode;
                if (textNode.getNodeValue().trim().length() > 0) {
                  String value = textNode.getNodeValue();
                  int index = 0;
                  int start = textNode.getStartOffset();
                  char curChar = value.charAt(index);
                  // here we are finding start offset by
                  // skipping over whitespace:
                  while ((curChar == '\n') || (curChar == '\t') || (curChar == '\r') || (curChar == ' ')) {
                    curChar = value.charAt(index);
                    index++;
                  }
                  if (index > 0) {
                    index--;

                  }
                  start = start + index;
                  startEndPositions[0] = start;
                  startEndPositions[1] = start + value.trim().length();
                  break;
                }
              }

            }
          }
        }

        else if (TEXT_ENTITY_REFERENCE.equals(selectionStrategy)) {
          if (node.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
            startEndPositions[0] = region.getStartOffset();
            startEndPositions[1] = region.getEndOffset();
          }
          else if (node.getNodeType() == Node.ELEMENT_NODE) {
            /*
             * In this case the undeclared entity might be in one
             * of the attribute values. Search through the
             * attributes to find the range of the undeclared
             * entity.
             */
            String entity = "&" + nameOrValue + ";"; //$NON-NLS-1$ //$NON-NLS-2$
            NamedNodeMap attributes = node.getAttributes();
            for (int i = 0; i < attributes.getLength(); i++) {
              IDOMAttr attr = (IDOMAttr) attributes.item(i);
              String nodeValue = attr.getNodeValue();
              int index = nodeValue.indexOf(entity);
              if (index != -1) {
                startEndPositions[0] = attr.getValueRegionStartOffset() + index + 1;
                startEndPositions[1] = startEndPositions[0] + entity.length();
              }
            }
          }

        }
        else if (VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE.equals(selectionStrategy)) {
          // TODO (Trung) do we really need this strategy ?
          // If we know the name of the name of the attribute, we
          // can retrieve its value.
          // Hence, we can incoperate this strategy with
          // ATTRIBUTE_VALUE ?
          if (node.getNodeType() == Node.ELEMENT_NODE) {
            // here we will search through all attributes for the
            // one with the
            // with the value we want:
            // TODO (Trung) I see a potential problem here.
            // What happens when there is another attribute having
            // the same value
            // with this attribute's buggy value ?
            // Need to solve when time permits.
            NamedNodeMap attributes = node.getAttributes();
            for (int i = 0; i < attributes.getLength(); i++) {
              IDOMAttr attr = (IDOMAttr) attributes.item(i);
              String nodeValue = attr.getNodeValue().trim();
              if (nodeValue.equals(nameOrValue)) {
                startEndPositions[0] = attr.getValueRegionStartOffset() + 1;
                startEndPositions[1] = startEndPositions[0] + nodeValue.length();
                break;
              }
            }
          }
        }
        else if (ATTRIBUTE_NAME_LAST.equals(selectionStrategy)) {
          // underline the last attribute's name
          if (node.getNodeType() == Node.ELEMENT_NODE) {
            NamedNodeMap attributeMap = node.getAttributes();
            final int length = attributeMap.getLength();
            Node tempNode = null;
            Node attrNode  = null;
            for (int i = 0; i < length; i++) {
              tempNode = attributeMap.item(i);
              if (tempNode != null && tempNode.getNodeName().equals(nameOrValue)) {
                attrNode = tempNode;
              }
            }
            IDOMNode attributeNode = (IDOMNode) (attrNode);
            if (attributeNode != null) {
              startEndPositions[0] = attributeNode.getStartOffset();
              startEndPositions[1] = attributeNode.getStartOffset() + nameOrValue.length();
            }
          }
        }
      }
      return startEndPositions;
View Full Code Here

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

    Node node = (Node) treeNode;
    while ((node != null) && (node.getNodeType() == Node.TEXT_NODE)
        && (node.getParentNode() != null)) {
      node = node.getParentNode();
    }
    IDOMNode xmlnode = (IDOMNode) node;
    ContentAssistRequest contentAssistRequest = null;
    IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
    ITextRegion completionRegion = getCompletionRegion(documentPosition,
        node);

    String matchString = getMatchString(sdRegion, completionRegion,
        documentPosition);

    // Handle empty Documents
    if (completionRegion == null) {
      if (((treeNode == null) || (((Node) treeNode).getNodeType() == Node.DOCUMENT_NODE))
          && (completionRegion == null)
          && ((xmlnode == null) || (xmlnode.getChildNodes() == null) || (xmlnode
              .getChildNodes().getLength() == 0))) {

        IStructuredModel sModel = null;
        try {
          if (textViewer.getDocument() instanceof IStructuredDocument) {
            sModel = StructuredModelManager.getModelManager()
                .getModelForRead(
                    (IStructuredDocument) textViewer
                        .getDocument());
          }
          if (sModel != null) {
            IDOMDocument docNode = ((IDOMModel) sModel)
                .getDocument();
            contentAssistRequest = new ContentAssistRequest(
                docNode, docNode, sdRegion, completionRegion,
                documentPosition, 0, null);
            addEmptyDocumentProposals(contentAssistRequest, context);
          }
        } finally {
          if (sModel != null) {
            sModel.releaseFromRead();
          }
        }
        if (contentAssistRequest == null) {
          Logger.logException(new IllegalStateException(
              "problem getting model")); //$NON-NLS-1$
          return new ArrayList(0);
        }

        ICompletionProposal[] props = contentAssistRequest
            .getCompletionProposals();
        return (props != null) ? Arrays.asList(props)
            : new ArrayList(0);
      }
      // MASSIVE ERROR CONDITION
      Logger.logException(new IllegalStateException(
          "completion region was null")); //$NON-NLS-1$
      setErrorMessage(XMLUIMessages.SEVERE_internal_error_occu_UI_);
      contentAssistRequest = new ContentAssistRequest((Node) treeNode,
          node.getParentNode(), sdRegion, completionRegion,
          documentPosition, 0, ""); //$NON-NLS-1$
      ICompletionProposal[] props = contentAssistRequest
          .getCompletionProposals();
      return (props != null) ? Arrays.asList(props) : new ArrayList(0);
    }

    // catch documents where no region can be determined
    if ((xmlnode.getNodeType() == Node.DOCUMENT_NODE)
        && ((completionRegion == null)
            || (xmlnode.getChildNodes() == null) || (xmlnode
            .getChildNodes().getLength() == 0))) {

      contentAssistRequest = computeStartDocumentProposals(matchString,
          completionRegion, (IDOMNode) treeNode, xmlnode, context);
      ICompletionProposal[] props = contentAssistRequest
View Full Code Here

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

      } else if ((regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
          && (documentPosition == sdRegion.getTextEndOffset())
          && (sdRegion.getText(completionRegion).endsWith("\"") || sdRegion.getText(completionRegion).endsWith("\'"))) { //$NON-NLS-1$ //$NON-NLS-2$
        // this is for when the cursor is at the end of the closing
        // quote for an attribute..
        IDOMNode actualNode = (IDOMNode) xmlnode.getModel()
            .getIndexedRegion(
                sdRegion.getStartOffset(completionRegion));
        contentAssistRequest = new ContentAssistRequest(actualNode,
            actualNode, sdRegion, completionRegion,
            documentPosition, 0, matchString);
View Full Code Here

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

        && (sdRegion.getStartOffset(completionRegion)
            + completionRegion.getTextLength() != sdRegion
            .getStartOffset(completionRegion)
            + completionRegion.getLength())) {
      // setup to add a new attribute at the documentPosition
      IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(
          sdRegion.getStartOffset(completionRegion));
      contentAssistRequest = new ContentAssistRequest(actualNode,
          actualNode, sdRegion, completionRegion, documentPosition,
          0, matchString);
      addAttributeNameProposals(contentAssistRequest, context);
      if ((actualNode.getFirstStructuredDocumentRegion() != null)
          && !actualNode.getFirstStructuredDocumentRegion().isEnded()) {
        addTagCloseProposals(contentAssistRequest, context);
      }
    } else {
      // setup to replace the existing value
      if (!nodeAtOffset.getFirstStructuredDocumentRegion().isEnded()
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.