Package org.eclipse.wst.xml.core.internal.provisional.document

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


    IDOMElement element = (IDOMElement) node;
    if (element.isCommentTag())
      return node; // do nothing

    int startTagStartOffset = node.getStartOffset();
    IDOMModel structuredModel = node.getModel();

    if (isEmptyElement(element)) {
      IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
      IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
      ITextRegionList regions = startStructuredDocumentRegion.getRegions();
      ITextRegion lastRegion = regions.get(regions.size() - 1);
      structuredDocument.replaceText(structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), lastRegion.getLength(), EMPTY_TAG_CLOSE);

      if (regions.size() > 1) {
        ITextRegion regionBeforeTagClose = regions.get(regions.size() - 1 - 1);

        // insert a space separator before tag close if the previous
        // region does not have extra spaces
        if (regionBeforeTagClose.getTextLength() == regionBeforeTagClose.getLength())
          structuredDocument.replaceText(structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), 0, " "); //$NON-NLS-1$
      }
    } else {
      String tagName = node.getNodeName();
      String endTag = END_TAG_OPEN.concat(tagName).concat(TAG_CLOSE);

      IDOMNode lastChild = (IDOMNode) node.getLastChild();
      int endTagStartOffset = 0;
      if (lastChild != null)
        // if this node has children, insert the end tag after the
        // last child
        endTagStartOffset = lastChild.getEndOffset();
      else
        // if this node does not has children, insert the end tag
        // after the start tag
        endTagStartOffset = node.getEndOffset();

      IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
      structuredDocument.replaceText(structuredDocument, endTagStartOffset, 0, endTag);
    }

    newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
    // new
    // node

    return newNode;
  }
View Full Code Here


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

          IDOMAttr eachAttr = (IDOMAttr) attributes.item(i);
          //ITextRegion oldAttrValueRegion =
          // eachAttr.getValueRegion();
          String oldAttrValue = eachAttr.getValueRegionText();
          if (oldAttrValue == null) {
            IDOMModel structuredModel = node.getModel();
            if (isXMLType(structuredModel)) {
              String newAttrValue = "\"" + eachAttr.getNameRegionText() + "\""; //$NON-NLS-1$ //$NON-NLS-2$

              IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
              if (eachAttr.getEqualRegion() != null)
                // equal region exists
                structuredDocument.replaceText(structuredDocument, eachAttr.getEndOffset(), 0, newAttrValue);
              else
                // no equal region
                structuredDocument.replaceText(structuredDocument, eachAttr.getNameRegionTextEndOffset(), 0, "=".concat(newAttrValue)); //$NON-NLS-1$
              newNode = (IDOMNode) structuredModel.getIndexedRegion(node.getStartOffset()); // save
              // new
              // node
            }
          } else {
            //String oldAttrValue = oldAttrValueRegion.getText();
            char quote = StringUtils.isQuoted(oldAttrValue) ? oldAttrValue.charAt(0) : DOUBLE_QUOTE;
            String newAttrValue = generator.generateAttrValue(eachAttr, quote);

            // There is a problem in
            // StructuredDocumentRegionUtil.getAttrValue(ITextRegion)
            // when the region is instanceof ContextRegion.
            // Workaround for now...
            if (oldAttrValue.length() == 1) {
              char firstChar = oldAttrValue.charAt(0);
              if (firstChar == SINGLE_QUOTE)
                newAttrValue = SINGLE_QUOTES;
              else if (firstChar == DOUBLE_QUOTE)
                newAttrValue = DOUBLE_QUOTES;
            }

            if (newAttrValue != null) {
              if (newAttrValue.compareTo(oldAttrValue) != 0) {
                int attrValueStartOffset = eachAttr.getValueRegionStartOffset();
                int attrValueLength = oldAttrValue.length();
                int startTagStartOffset = node.getStartOffset();

                IDOMModel structuredModel = node.getModel();
                IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
                structuredDocument.replaceText(structuredDocument, attrValueStartOffset, attrValueLength, newAttrValue);
                newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
                // new
                // node
              }
            }
          }
View Full Code Here

      formatIndentationBeforeNode(node, formatContraints);

      // format start tag
      IDOMNode newNode = node;
      int startTagStartOffset = node.getStartOffset();
      IDOMModel structuredModel = node.getModel();

      boolean currentlyInXmlSpacePreserve = formatContraints.getInPreserveSpaceElement();
      formatStartTag(node, formatContraints);
      // save new node
      newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);

      IStructuredDocumentRegion flatNode = newNode.getFirstStructuredDocumentRegion();
      if (flatNode != null) {
        ITextRegionList regions = flatNode.getRegions();
        ITextRegion lastRegion = regions.get(regions.size() - 1);
        // format children and end tag if not empty start tag
        if (lastRegion.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
          // format children
          formatChildren(newNode, formatContraints);

          // save new node
          newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);

          // format end tag
          formatEndTag(newNode, formatContraints);
        }
      }
View Full Code Here

      // append undefined regions
      String undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, node.getEndOffset() - lastUndefinedRegionOffset);
      stringBuffer.append(undefinedRegion);

      IDOMModel structuredModel = node.getModel();
      IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
      // 1 is for "<"
      int offset = node.getStartOffset() + 1 + node.getNodeName().length();
      // 1 is for "<"
      int length = node.getFirstStructuredDocumentRegion().getTextLength() - 1 - node.getNodeName().length();
View Full Code Here

   
    initializeJavaPlugins();

    JSPProposalCollector collector = null;
   
    IDOMModel xmlModel = null;
    try {
      xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(viewer.getDocument());

      IDOMDocument xmlDoc = xmlModel.getDocument();
      if (fTranslationAdapter == null || xmlModel.getId() != fModelId) {
        fTranslationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
        fModelId = xmlModel.getId();
      }
      if (fTranslationAdapter != null) {

        JSPTranslation translation = fTranslationAdapter.getJSPTranslation();
        int javaPosition = translation.getJavaOffset(pos) + javaPositionExtraOffset;

        try {

          ICompilationUnit cu = translation.getCompilationUnit();

          // can't get java proposals w/out a compilation unit
          // or without a valid position
          if (cu == null || -1 == javaPosition)
            return new ArrayList(0);
         
          collector = getProposalCollector(cu, translation);
          synchronized (cu) {
            cu.codeComplete(javaPosition, collector, (WorkingCopyOwner) null);
          }
        }
        catch (CoreException coreEx) {
          // a possible Java Model Exception due to not being a Web
          // (Java) Project
          coreEx.printStackTrace();
        }
      }
    }
    catch (Exception exc) {
      exc.printStackTrace();
      // throw out exceptions on code assist.
    }
    finally {
      if (xmlModel != null) {
        xmlModel.releaseFromRead();
      }
    }
    ICompletionProposal[] results = new ICompletionProposal[0];
    if(collector != null) {
      results = collector.getJSPCompletionProposals();
View Full Code Here

    // insert tag close if missing
    // if node is not comment tag
    // and not implicit tag
    if (!((IDOMElement) renamedNode).isCommentTag() && (renamedNode.getStartStructuredDocumentRegion() != null)) {
      IDOMModel structuredModel = renamedNode.getModel();

      // save start offset before insertTagClose()
      // or else renamedNode.getStartOffset() will be zero if
      // renamedNode replaced by insertTagClose()
      int startTagStartOffset = renamedNode.getStartOffset();

      // for start tag
      IStructuredDocumentRegion startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion();
      insertTagClose(structuredModel, startTagStructuredDocumentRegion);

      // update renamedNode and startTagStructuredDocumentRegion after
      // insertTagClose()
      renamedNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);
      startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion();

      // for end tag
      IStructuredDocumentRegion endTagStructuredDocumentRegion = renamedNode.getEndStructuredDocumentRegion();
      if (endTagStructuredDocumentRegion != startTagStructuredDocumentRegion)
View Full Code Here

      if (newAttrName.compareTo(oldAttrName) != 0) {
        int attrNameStartOffset = eachAttr.getStartOffset();
        int attrNameLength = oldAttrName.length();

        IDOMModel structuredModel = node.getModel();
        IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
        replaceSource(structuredModel, structuredDocument, attrNameStartOffset, attrNameLength, newAttrName);
      }
    }
  }
View Full Code Here

    if (tagNameCase == HTMLCorePreferenceNames.LOWER)
      newTagName = oldTagName.toLowerCase(Locale.US);
    else if (tagNameCase == HTMLCorePreferenceNames.UPPER)
      newTagName = oldTagName.toUpperCase(Locale.US);

    IDOMModel structuredModel = node.getModel();
    IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();

    IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
    if (startTagStructuredDocumentRegion != null) {
      ITextRegionList regions = startTagStructuredDocumentRegion.getRegions();
      if (regions != null && regions.size() > 0) {
        ITextRegion startTagNameRegion = regions.get(1);
        int startTagNameStartOffset = startTagStructuredDocumentRegion.getStartOffset(startTagNameRegion);
        int startTagNameLength = startTagStructuredDocumentRegion.getTextEndOffset(startTagNameRegion) - startTagNameStartOffset;

        replaceSource(structuredModel, structuredDocument, startTagNameStartOffset, startTagNameLength, newTagName);
        newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagNameStartOffset); // save
        // new
        // node
      }
    }
View Full Code Here

  protected IDOMNode insertEndTag(IDOMNode node) {
    IDOMElement element = (IDOMElement) node;

    int startTagStartOffset = node.getStartOffset();
    IDOMModel structuredModel = node.getModel();
    IDOMNode newNode = null;

    if (element.isCommentTag()) {
      // do nothing
    }
    else if (isEmptyElement(element)) {
      IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
      IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
      ITextRegionList regions = startStructuredDocumentRegion.getRegions();
      ITextRegion lastRegion = regions.get(regions.size() - 1);
      replaceSource(structuredModel, structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), lastRegion.getLength(), EMPTY_TAG_CLOSE);

      if (regions.size() > 1) {
        ITextRegion regionBeforeTagClose = regions.get(regions.size() - 1 - 1);

        // insert a space separator before tag close if the previous
        // region does not have extra spaces
        if (regionBeforeTagClose.getTextLength() == regionBeforeTagClose.getLength())
          replaceSource(structuredModel, structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), 0, " "); //$NON-NLS-1$
      }
    }
    else {
      String tagName = node.getNodeName();
      String endTag = END_TAG_OPEN.concat(tagName).concat(TAG_CLOSE);

      IDOMNode lastChild = (IDOMNode) node.getLastChild();
      int endTagStartOffset = 0;
      if (lastChild != null)
        // if this node has children, insert the end tag after the
        // last child
        endTagStartOffset = lastChild.getEndOffset();
      else
        // if this node does not has children, insert the end tag
        // after the start tag
        endTagStartOffset = node.getEndOffset();

      IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
      replaceSource(structuredModel, structuredDocument, endTagStartOffset, 0, endTag);
    }

    newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
    // new
    // node

    return newNode;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel

Copyright © 2018 www.massapicom. 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.