Search in sources :

Example 6 with CMNamedNodeMapImpl

use of org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl in project webtools.sourceediting by eclipse.

the class ElementImplTests method testCMAttrWithNullImpliedValue.

public void testCMAttrWithNullImpliedValue() {
    IDOMModel model = null;
    try {
        model = (IDOMModel) getModelForRead("testfiles/time.xml");
        if (model != null) {
            IDOMDocument document = model.getDocument();
            final String ATTR_NAME = "second";
            // Setup a ModelQueryAdapter whose sole purpose it to provide a attribute declaration with a null implied value
            document.addAdapter(new ModelQueryAdapter() {

                public boolean isAdapterForType(Object type) {
                    return type.equals(ModelQueryAdapter.class);
                }

                public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
                }

                public CMDocumentCache getCMDocumentCache() {
                    return null;
                }

                public org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver getIdResolver() {
                    return null;
                }

                public ModelQuery getModelQuery() {
                    return new ModelQueryImpl(null) {

                        /* (non-Javadoc)
							 * @see org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl#getCMElementDeclaration(org.w3c.dom.Element)
							 */
                        public CMElementDeclaration getCMElementDeclaration(Element element) {
                            final CMElementDeclaration decl = new CMElementDeclarationImpl(null, null);
                            CMNamedNodeMapImpl map = (CMNamedNodeMapImpl) decl.getAttributes();
                            map.put(new CMAttributeDeclarationImpl(ATTR_NAME, CMAttributeDeclaration.OPTIONAL, new CMDataTypeImpl(ATTR_NAME, (String) null)));
                            return decl;
                        }
                    };
                }

                public void release() {
                }

                public void setIdResolver(org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver newIdResolver) {
                }
            });
            Element element = document.getDocumentElement();
            assertNotNull(element);
            // Default value should be 0
            assertEquals("", element.getAttribute(ATTR_NAME));
        }
    } finally {
        if (model != null) {
            model.releaseFromRead();
        }
    }
}
Also used : CMNamedNodeMapImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl) CMAttributeDeclarationImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMAttributeDeclarationImpl) ModelQueryAdapter(org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter) IDOMModel(org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel) Element(org.w3c.dom.Element) URIResolver(org.eclipse.wst.sse.core.internal.util.URIResolver) CMDataTypeImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMDataTypeImpl) CMElementDeclarationImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMElementDeclarationImpl) INodeNotifier(org.eclipse.wst.sse.core.internal.provisional.INodeNotifier) ModelQueryImpl(org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl) IDOMDocument(org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument) CMDocumentCache(org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache) CMElementDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration) ModelQuery(org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery)

Example 7 with CMNamedNodeMapImpl

use of org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl in project webtools.sourceediting by eclipse.

the class AttributeShowingLabelProvider method getText.

/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
	 */
@Override
public String getText(Object o) {
    StringBuffer text = null;
    if (o instanceof Node) {
        Node node = (Node) o;
        if ((node.getNodeType() == Node.ELEMENT_NODE) && fShowAttributes) {
            text = new StringBuffer(super.getText(o));
            // https://bugs.eclipse.org/bugs/show_bug.cgi?id=88444
            if (node.hasAttributes()) {
                Element element = (Element) node;
                NamedNodeMap attributes = element.getAttributes();
                Node idTypedAttribute = null;
                Node requiredAttribute = null;
                boolean hasId = false;
                boolean hasName = false;
                Node shownAttribute = null;
                // try to get content model element
                // declaration
                CMElementDeclaration elementDecl = null;
                ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
                if (mq != null) {
                    elementDecl = mq.getCMElementDeclaration(element);
                }
                // ID
                if (elementDecl != null) {
                    int i = 0;
                    while ((i < attributes.getLength()) && (idTypedAttribute == null)) {
                        Node attr = attributes.item(i);
                        String attrName = attr.getNodeName();
                        CMNamedNodeMap attributeDeclarationMap = elementDecl.getAttributes();
                        CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(attributeDeclarationMap);
                        List nodes = ModelQueryUtil.getModelQuery(node.getOwnerDocument()).getAvailableContent(element, elementDecl, ModelQuery.INCLUDE_ATTRIBUTES);
                        for (int k = 0; k < nodes.size(); k++) {
                            CMNode cmnode = (CMNode) nodes.get(k);
                            if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
                                allAttributes.put(cmnode);
                            }
                        }
                        attributeDeclarationMap = allAttributes;
                        CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) attributeDeclarationMap.getNamedItem(attrName);
                        if (attrDecl != null) {
                            if ((attrDecl.getAttrType() != null) && (CMDataType.ID.equals(attrDecl.getAttrType().getDataTypeName()))) {
                                idTypedAttribute = attr;
                            } else if ((attrDecl.getUsage() == CMAttributeDeclaration.REQUIRED) && (requiredAttribute == null)) {
                                // as a backup, keep tabs on
                                // any required
                                // attributes
                                requiredAttribute = attr;
                            } else {
                                hasId = hasId || attrName.equals(ATTR_ID);
                                hasName = hasName || attrName.equals(ATTR_NAME);
                            }
                        }
                        ++i;
                    }
                }
                /*
					 * If no suitable attribute was found, try using a
					 * required attribute, if none, then prefer "id" or
					 * "name", otherwise just use first attribute
					 */
                if (idTypedAttribute != null) {
                    shownAttribute = idTypedAttribute;
                } else if (requiredAttribute != null) {
                    shownAttribute = requiredAttribute;
                } else if (hasId) {
                    shownAttribute = attributes.getNamedItem(ATTR_ID);
                } else if (hasName) {
                    shownAttribute = attributes.getNamedItem(ATTR_NAME);
                }
                if (shownAttribute == null) {
                    shownAttribute = attributes.item(0);
                }
                // display the attribute and value (without quotes)
                String attributeName = shownAttribute.getNodeName();
                if ((attributeName != null) && (attributeName.length() > 0)) {
                    // $NON-NLS-1$
                    text.append(" ");
                    text.append(attributeName);
                    String attributeValue = shownAttribute.getNodeValue();
                    if ((attributeValue != null) && (attributeValue.length() > 0)) {
                        // $NON-NLS-1$
                        text.append("=");
                        text.append(StringUtils.strip(attributeValue));
                    }
                }
            // if (XSLCore.XSL_NAMESPACE_URI.equals(node.getNamespaceURI())) {
            // Element el = (Element) node;
            // Attr attr = el.getAttributeNode("mode"); //$NON-NLS-1$
            // if (attr != null) {
            // text.append(" "); //$NON-NLS-1$
            // text.append(attr.getName());
            // text.append("="); //$NON-NLS-1$
            // text.append(StringUtils.strip(attr.getNodeValue()));
            // }
            // }
            }
        } else {
            text = new StringBuffer(super.getText(o));
        }
    } else {
        return super.toString();
    }
    return text.toString();
}
Also used : CMNamedNodeMapImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl) CMNamedNodeMap(org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap) NamedNodeMap(org.w3c.dom.NamedNodeMap) Node(org.w3c.dom.Node) CMNode(org.eclipse.wst.xml.core.internal.contentmodel.CMNode) Element(org.w3c.dom.Element) CMElementDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration) ModelQuery(org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery) List(java.util.List) CMNode(org.eclipse.wst.xml.core.internal.contentmodel.CMNode) CMAttributeDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration) CMNamedNodeMap(org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap)

Example 8 with CMNamedNodeMapImpl

use of org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl in project webtools.sourceediting by eclipse.

the class AbstractXMLModelQueryCompletionProposalComputer method attributeInList.

/**
 * This method determines if any of the attributes in the proposed XMLNode
 * node, are possible values of attributes from possible Elements at this
 * point in the document according to the Content Model.
 *
 * @param node
 *            the element with attributes that you would like to test if
 *            are possible for possible Elements at this point
 * @param cmnode
 *            possible element at this point in the document (depending on
 *            what 'node' is) true if any attributes of 'node' match any
 *            possible attributes from 'cmnodes' list.
 */
private boolean attributeInList(IDOMNode node, Node parent, CMNode cmnode) {
    if ((node == null) || (parent == null) || (cmnode == null)) {
        return false;
    }
    String elementMatchString = node.getNodeName();
    // cmnode.getNodeName();
    String cmnodeName = getRequiredName(parent, cmnode);
    if (node instanceof Element) {
        NamedNodeMap map = ((Element) node).getAttributes();
        // $NON-NLS-1$
        String attrMatchString = "";
        // iterate attribute possibilities for partially started node
        for (int i = 0; (map != null) && (i < map.getLength()); i++) {
            attrMatchString = map.item(i).getNodeName();
            // filter on whatever user typed for element name already
            if (beginsWith(cmnodeName, elementMatchString)) {
                if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
                    CMNamedNodeMapImpl attributes = new CMNamedNodeMapImpl(((CMElementDeclaration) cmnode).getAttributes());
                    this.addModelQueryAttributeDeclarations(node, ((CMElementDeclaration) cmnode), attributes);
                    // proposal list
                    for (int k = 0; (attributes != null) && (k < attributes.getLength()); k++) {
                        // check if name matches
                        if (attributes.item(k).getNodeName().equals(attrMatchString)) {
                            return true;
                        }
                    }
                }
            }
        }
    }
    return false;
}
Also used : CMNamedNodeMapImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl) CMNamedNodeMap(org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap) NamedNodeMap(org.w3c.dom.NamedNodeMap) CMElementDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration) Element(org.w3c.dom.Element) IDOMElement(org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement)

Example 9 with CMNamedNodeMapImpl

use of org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl in project webtools.sourceediting by eclipse.

the class AbstractXMLModelQueryCompletionProposalComputer method addAttributeValueProposals.

protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest, CompletionProposalInvocationContext context) {
    IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
    // Find the attribute region and name for which this position should
    // have a value proposed
    IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion();
    ITextRegionList openRegions = open.getRegions();
    int i = openRegions.indexOf(contentAssistRequest.getRegion());
    if (i < 0) {
        return;
    }
    ITextRegion nameRegion = null;
    while (i >= 0) {
        nameRegion = openRegions.get(i--);
        if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
            break;
        }
    }
    // the name region is REQUIRED to do anything useful
    if (nameRegion != null) {
        // Retrieve the declaration
        CMElementDeclaration elementDecl = getCMElementDeclaration(node);
        // String attributeName = nameRegion.getText();
        String attributeName = open.getText(nameRegion);
        CMAttributeDeclaration attrDecl = null;
        // declaration for the attribute otherwise
        if (elementDecl != null) {
            CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(elementDecl.getAttributes()) {

                private Map caseInsensitive;

                private Map getCaseInsensitiveMap() {
                    if (caseInsensitive == null)
                        caseInsensitive = new HashMap();
                    return caseInsensitive;
                }

                public CMNode getNamedItem(String name) {
                    CMNode node = super.getNamedItem(name);
                    if (node == null) {
                        node = (CMNode) getCaseInsensitiveMap().get(name.toLowerCase(Locale.US));
                    }
                    return node;
                }

                public void put(CMNode cmNode) {
                    super.put(cmNode);
                    getCaseInsensitiveMap().put(cmNode.getNodeName().toLowerCase(Locale.US), cmNode);
                }
            };
            this.addModelQueryAttributeDeclarations(node, elementDecl, allAttributes);
            String noprefixName = DOMNamespaceHelper.getUnprefixedName(attributeName);
            if (allAttributes != null) {
                attrDecl = (CMAttributeDeclaration) allAttributes.getNamedItem(attributeName);
                if (attrDecl == null) {
                    attrDecl = (CMAttributeDeclaration) allAttributes.getNamedItem(noprefixName);
                }
            }
            if (attrDecl == null) {
                setErrorMessage(XMLUIMessages.No_known_attribute__UI_ + attributeName);
            }
        }
        String currentValue = node.getAttributes().getNamedItem(attributeName).getNodeValue();
        String proposedInfo = null;
        // get proposal image
        Image image = CMImageUtil.getImage(attrDecl);
        if (image == null) {
            if ((attrDecl != null) && (attrDecl.getUsage() == CMAttributeDeclaration.REQUIRED)) {
                image = this.getRequiredAttributeImage();
            } else {
                image = this.getNotRequiredAttributeImage();
            }
        }
        if ((attrDecl != null) && (attrDecl.getAttrType() != null)) {
            // attribute is known, prompt with values from the declaration
            proposedInfo = getAdditionalInfo(elementDecl, attrDecl);
            List possibleValues = getPossibleDataTypeValues(node, attrDecl);
            String defaultValue = attrDecl.getAttrType().getImpliedValue();
            // $NON-NLS-1$
            String qualifiedDelimiter = (String) attrDecl.getProperty("qualified-delimiter");
            if (possibleValues.size() > 0 || defaultValue != null) {
                // ENUMERATED VALUES
                String matchString = contentAssistRequest.getMatchString();
                if (matchString == null) {
                    // $NON-NLS-1$
                    matchString = "";
                }
                if ((matchString.length() > 0) && (matchString.startsWith("\"") || matchString.startsWith("'"))) {
                    // $NON-NLS-1$ //$NON-NLS-2$
                    matchString = matchString.substring(1);
                }
                boolean currentValid = false;
                // create suggestions for enumerated values
                int rOffset = contentAssistRequest.getReplacementBeginPosition();
                int rLength = contentAssistRequest.getReplacementLength();
                for (Iterator j = possibleValues.iterator(); j.hasNext(); ) {
                    String possibleValue = (String) j.next();
                    String alternateMatch = null;
                    if (qualifiedDelimiter != null) {
                        int delimiter = possibleValue.lastIndexOf(qualifiedDelimiter);
                        if (delimiter >= 0 && delimiter < possibleValue.length() - 1) {
                            alternateMatch = possibleValue.substring(delimiter + 1);
                        }
                    }
                    if (!possibleValue.equals(defaultValue)) {
                        currentValid = currentValid || possibleValue.equals(currentValue);
                        if ((matchString.length() == 0) || possibleValue.startsWith(matchString)) {
                            // $NON-NLS-1$ //$NON-NLS-2$
                            String rString = "\"" + possibleValue + "\"";
                            // $NON-NLS-1$
                            alternateMatch = "\"" + alternateMatch;
                            CustomCompletionProposal proposal = new MarkupCompletionProposal(rString, rOffset, rLength, possibleValue.length() + 1, XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ENUM), rString, alternateMatch, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE, true);
                            contentAssistRequest.addProposal(proposal);
                        }
                    }
                }
                if (defaultValue != null && ((matchString.length() == 0) || defaultValue.startsWith(matchString))) {
                    // $NON-NLS-1$ //$NON-NLS-2$
                    String rString = "\"" + defaultValue + "\"";
                    final String regionText = contentAssistRequest.getDocumentRegion().getText(contentAssistRequest.getRegion());
                    final int matchStringLength = contentAssistRequest.getMatchString().length();
                    if (matchString.length() > 0 && matchStringLength < regionText.length()) {
                        final String remaining = regionText.substring(matchStringLength).trim();
                        if (remaining.charAt(0) != '\'' && remaining.charAt(0) != '"') {
                            rLength = matchStringLength;
                        }
                    }
                    CustomCompletionProposal proposal = new MarkupCompletionProposal(rString, rOffset, rLength, defaultValue.length() + 1, XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_DEFAULT), rString, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
                    contentAssistRequest.addProposal(proposal);
                }
            } else if (((attrDecl.getUsage() == CMAttributeDeclaration.FIXED) || (attrDecl.getAttrType().getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED)) && (attrDecl.getAttrType().getImpliedValue() != null)) {
                // FIXED values
                String value = attrDecl.getAttrType().getImpliedValue();
                if ((value != null) && (value.length() > 0)) {
                    // $NON-NLS-2$//$NON-NLS-1$
                    String rValue = "\"" + value + "\"";
                    CustomCompletionProposal proposal = new MarkupCompletionProposal(rValue, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), rValue.length() + 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
                    contentAssistRequest.addProposal(proposal);
                    if ((currentValue.length() > 0) && !value.equals(currentValue)) {
                        // $NON-NLS-2$//$NON-NLS-1$
                        rValue = "\"" + currentValue + "\"";
                        proposal = new MarkupCompletionProposal(rValue, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), rValue.length() + 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
                        contentAssistRequest.addProposal(proposal);
                    }
                }
            }
        } else {
            // unknown attribute, so supply nice empty values
            proposedInfo = getAdditionalInfo(null, elementDecl);
            CustomCompletionProposal proposal = null;
            if ((currentValue != null) && (currentValue.length() > 0)) {
                final String regionText = open.getText(contentAssistRequest.getRegion());
                if (regionText.charAt(0) != '"' && regionText.charAt(0) != '\'') {
                    // $NON-NLS-2$//$NON-NLS-1$
                    String rValue = "\"" + currentValue + "\"";
                    proposal = new MarkupCompletionProposal(rValue, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
                    contentAssistRequest.addProposal(proposal);
                }
            }
        }
    } else {
        setErrorMessage(XMLUIMessages.Content_Assist_not_availab_UI_);
    }
}
Also used : CMNamedNodeMapImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl) IStructuredDocumentRegion(org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion) HashMap(java.util.HashMap) CustomCompletionProposal(org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal) Image(org.eclipse.swt.graphics.Image) ITextRegionList(org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList) CMElementDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration) IDOMNode(org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode) ITextRegion(org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion) Iterator(java.util.Iterator) CMAttributeDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration) CMNode(org.eclipse.wst.xml.core.internal.contentmodel.CMNode) List(java.util.List) ITextRegionList(org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList) ArrayList(java.util.ArrayList) Map(java.util.Map) CMNamedNodeMap(org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap) HashMap(java.util.HashMap) NamedNodeMap(org.w3c.dom.NamedNodeMap)

Example 10 with CMNamedNodeMapImpl

use of org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl in project webtools.sourceediting by eclipse.

the class QuickAssistProcessorXML method getRequiredAttrs.

protected List getRequiredAttrs(Node node) {
    List result = new ArrayList();
    ModelQuery modelQuery = getModelQuery(node);
    if (modelQuery != null) {
        CMElementDeclaration elementDecl = modelQuery.getCMElementDeclaration((Element) node);
        if (elementDecl != null) {
            CMNamedNodeMap attrMap = elementDecl.getAttributes();
            CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(attrMap);
            List nodes = ModelQueryUtil.getModelQuery(node.getOwnerDocument()).getAvailableContent((Element) node, elementDecl, ModelQuery.INCLUDE_ATTRIBUTES);
            for (int k = 0; k < nodes.size(); k++) {
                CMNode cmnode = (CMNode) nodes.get(k);
                if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
                    allAttributes.put(cmnode);
                }
            }
            attrMap = allAttributes;
            Iterator it = attrMap.iterator();
            CMAttributeDeclaration attr = null;
            while (it.hasNext()) {
                attr = (CMAttributeDeclaration) it.next();
                if (attr.getUsage() == CMAttributeDeclaration.REQUIRED) {
                    result.add(attr);
                }
            }
        }
    }
    return result;
}
Also used : CMNamedNodeMapImpl(org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl) CMElementDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration) ArrayList(java.util.ArrayList) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) ModelQuery(org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery) CMNode(org.eclipse.wst.xml.core.internal.contentmodel.CMNode) CMAttributeDeclaration(org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration) CMNamedNodeMap(org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap)

Aggregations

CMNamedNodeMapImpl (org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl)21 CMNamedNodeMap (org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap)16 CMElementDeclaration (org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration)15 List (java.util.List)14 CMNode (org.eclipse.wst.xml.core.internal.contentmodel.CMNode)14 CMAttributeDeclaration (org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration)13 ArrayList (java.util.ArrayList)11 NamedNodeMap (org.w3c.dom.NamedNodeMap)11 ITextRegionList (org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList)7 ModelQuery (org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery)6 Attr (org.w3c.dom.Attr)6 Iterator (java.util.Iterator)5 Image (org.eclipse.swt.graphics.Image)4 IStructuredDocumentRegion (org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion)4 ITextRegion (org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion)4 CustomCompletionProposal (org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal)4 CMNodeList (org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList)4 IDOMNode (org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode)4 Element (org.w3c.dom.Element)4 NodeList (org.w3c.dom.NodeList)4