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

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


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


    if (window != null) {
      IWorkbenchPage page = window.getActivePage();
      if (fResource.getType() == IResource.FILE) {
        IFile file = (IFile) fResource;
        IMarker marker = null;
        IDOMModel domModel = null;
        try {
          IStructuredModel model = StructuredModelManager.getModelManager().getModelForRead(file);
          if (model instanceof IDOMModel) {
            domModel = (IDOMModel) model;
            if (domModel != null) {
              IRegion targetRegion = TaglibHyperlinkDetector.findDefinition(domModel, fSearchName, fSearchType);
              if (targetRegion != null) {
                try {
                  marker = createMarker(file, targetRegion);
                }
                catch (CoreException e) {
                  Logger.logException(e);
                }
              }
              if (marker != null) {
                try {
                  IDE.openEditor(page, marker);
                }
                catch (PartInitException e1) {
                  Logger.logException(e1);
                }
                finally {
                  try {
                    marker.delete();
                  }
                  catch (CoreException e) {
                    Logger.logException(e);
                  }
                }
              }
              else {
                IDE.openEditor(page, file);
              }
            }
          }
        }
        catch (IOException e2) {
        }
        catch (CoreException e2) {
        }
        finally {
          if (domModel != null) {
            domModel.releaseFromRead();
          }
        }
      }
    }
  }
View Full Code Here

        // list of results.
        IStructuredModel internalModel = null;
        IModelManager mmanager = StructuredModelManager.getModelManager();
        internalModel = mmanager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
        IDOMNode xmlNode = null;
        IDOMModel xmlOuterModel = null;
        if (contentAssistRequest.getNode() instanceof IDOMNode) {
          xmlNode = (IDOMNode) contentAssistRequest.getNode();
          xmlOuterModel = xmlNode.getModel();
          internalModel.setResolver(xmlOuterModel.getResolver());
          internalModel.setBaseLocation(xmlOuterModel.getBaseLocation());
        }
        String contents = StringUtils.strip(contentAssistRequest.getText());
        if (xmlNode != null && contents != null) {
          int additionalShifts = 0;
          // Be sure that custom tags from taglibs also show up
          // by
          // adding taglib declarations to the internal model.
          TLDCMDocumentManager mgr = TaglibController.getTLDCMDocumentManager(xmlOuterModel.getStructuredDocument());
          if (mgr != null) {
            List trackers = mgr.getCMDocumentTrackers(contentAssistRequest.getReplacementBeginPosition());
            if (trackers != null) {
              for (i = 0; i < trackers.size(); i++) {
                CMDocumentTracker tracker = (CMDocumentTracker) trackers.get(i);
                String declaration = tracker.getStructuredDocumentRegion().getText();
                if (declaration != null) {
                  contents = declaration + contents;
                  additionalShifts += declaration.length();
                }
              }
            }
          }
          // Also copy any jsp:useBean tags so that
          // jsp:[gs]etProperty will function
          Document doc = null;
          if (contentAssistRequest.getNode().getNodeType() == Node.DOCUMENT_NODE)
            doc = (Document) node;
          else
            doc = node.getOwnerDocument();
          NodeList useBeans = doc.getElementsByTagName(JSP12Namespace.ElementName.USEBEAN);
          for (int k = 0; k < useBeans.getLength(); k++) {
            IDOMNode useBean = (IDOMNode) useBeans.item(k);
            if (useBean.getStartOffset() < contentAssistRequest.getReplacementBeginPosition()) {
              StringBuffer useBeanText = new StringBuffer("<jsp:useBean"); //$NON-NLS-1$
              for (int j = 0; j < useBean.getAttributes().getLength(); j++) {
                Attr attr = (Attr) useBean.getAttributes().item(j);
                useBeanText.append(' ');
                useBeanText.append(attr.getName());
                useBeanText.append("=\""); //$NON-NLS-1$
                useBeanText.append(attr.getValue());
                useBeanText.append('"');
              }
              useBeanText.append("/>"); //$NON-NLS-1$
              additionalShifts += useBeanText.length();
              contents = useBeanText.toString() + contents;
            }
          }
          internalModel.getStructuredDocument().set(contents);
          int internalOffset = 0;
          boolean quoted = false;
          // if quoted, use position inside and shift by one
          if (contentAssistRequest.getMatchString().length() > 0 && (contentAssistRequest.getMatchString().charAt(0) == '\'' || contentAssistRequest.getMatchString().charAt(0) == '"')) {
            internalOffset = contentAssistRequest.getMatchString().length() - 1 + additionalShifts;
            quoted = true;
          }
          // if unquoted, use position inside
          else if (contentAssistRequest.getMatchString().length() > 0 && contentAssistRequest.getMatchString().charAt(0) == '<')
            internalOffset = contentAssistRequest.getMatchString().length() + additionalShifts;
          else
            internalOffset = contentAssistRequest.getReplacementBeginPosition() - contentAssistRequest.getStartOffset() + additionalShifts;
          depthCount++;
          IndexedRegion internalNode = null;
          int tmpOffset = internalOffset;
          while (internalNode == null && tmpOffset >= 0)
            internalNode = internalModel.getIndexedRegion(tmpOffset--);

          if (internalModel.getFactoryRegistry() != null) {
            // set up the internal model
            if (internalModel.getFactoryRegistry().getFactoryFor(PageDirectiveAdapter.class) == null) {
              internalModel.getFactoryRegistry().addFactory(new PageDirectiveAdapterFactory());
            }
            PageDirectiveAdapter outerEmbeddedTypeAdapter = (PageDirectiveAdapter) xmlOuterModel.getDocument().getAdapterFor(PageDirectiveAdapter.class);
            PageDirectiveAdapter internalEmbeddedTypeAdapter = (PageDirectiveAdapter) ((INodeNotifier) ((Node) internalNode).getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
            internalEmbeddedTypeAdapter.setEmbeddedType(outerEmbeddedTypeAdapter.getEmbeddedType());
          }

          AdapterFactoryRegistry adapterRegistry = JSPUIPlugin.getDefault().getAdapterFactoryRegistry();
View Full Code Here

   * @return JSPTranslation if one exists, null otherwise
   */
  private JSPTranslation getJSPTranslation(IDocument document) {
    JSPTranslation translation = null;

    IDOMModel xmlModel = null;
    try {
      xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(document);
      if (xmlModel != null) {
        IDOMDocument xmlDoc = xmlModel.getDocument();
        JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
        if (adapter != null) {
          translation = adapter.getJSPTranslation();
        }
      }
    }
    finally {
      if (xmlModel != null)
        xmlModel.releaseFromRead();
    }
    return translation;
  }
View Full Code Here

      ITextSelection textSelection = (ITextSelection) selection;
      // get the JSP translation object for this editor's document
      IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
      try {
        if (model instanceof IDOMModel) {
          IDOMModel xmlModel = (IDOMModel)model;
          IDOMDocument xmlDoc = xmlModel.getDocument();

          JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
          if (adapter != null) {
            JSPTranslation translation = adapter.getJSPTranslation();
            elements = translation.getElementsFromJspRange(textSelection.getOffset(), textSelection.getOffset() + textSelection.getLength());
View Full Code Here

  protected List computeJavaCompletionProposals(ITextViewer viewer,
      int pos, int javaPositionExtraOffset) {
   
    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

   * @return JSPTranslation if one exists, null otherwise
   */
  private JSPTranslation getJSPTranslation(IDocument document) {
    JSPTranslation translation = null;

    IDOMModel xmlModel = null;
    try {
      xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(document);
      if (xmlModel != null) {
        IDOMDocument xmlDoc = xmlModel.getDocument();
        JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
        if (adapter != null) {
          translation = adapter.getJSPTranslation();
        }
      }
    }
    finally {
      if (xmlModel != null)
        xmlModel.releaseFromRead();
    }
    return translation;
  }
View Full Code Here

        jspFile.refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());
        model = modelManager.getModelForRead(jspFile);
      }
      // handle unsupported
      if (model instanceof IDOMModel) {
        IDOMModel xmlModel = (IDOMModel)model;
        setupAdapterFactory(xmlModel);
        IDOMDocument doc = xmlModel.getDocument();
        JSPTranslationAdapter adapter = (JSPTranslationAdapter) doc.getAdapterFor(IJSPTranslation.class);
        translation = adapter.getJSPTranslation();
      }
    }
    catch (IOException e) {
View Full Code Here

    // insert tag close if missing
    // if node is not comment tag
    // and not implicit tag
    if (!isCommentTag(renamedNode) && !isImplicitTag(renamedNode)) {
      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

      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;
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.