Java 类com.intellij.util.xml.DefinesXml 实例源码

项目:intellij-ce-playground    文件:DomDescriptorProvider.java   
@Override
@Nullable
public XmlElementDescriptor getDescriptor(final XmlTag tag) {
  Project project = tag.getProject();
  if (project.isDefault()) return null;

  final DomInvocationHandler<?,?> handler = DomManagerImpl.getDomManager(project).getDomHandler(tag);
  if (handler != null) {
    final DefinesXml definesXml = handler.getAnnotation(DefinesXml.class);
    if (definesXml != null) {
      return new DomElementXmlDescriptor(handler);
    }
    final PsiElement parent = tag.getParent();
    if (parent instanceof XmlTag) {
      final XmlElementDescriptor descriptor = ((XmlTag)parent).getDescriptor();

      if (descriptor instanceof DomElementXmlDescriptor) {
        return descriptor.getElementDescriptor(tag, (XmlTag)parent);
      }
    }
  }

  return null;
}
项目:tools-idea    文件:DomDescriptorProvider.java   
@Nullable
public XmlElementDescriptor getDescriptor(final XmlTag tag) {
  Project project = tag.getProject();
  if (project.isDefault()) return null;
  final DomElement domElement = DomManager.getDomManager(project).getDomElement(tag);
  if (domElement != null) {
    final DefinesXml definesXml = domElement.getAnnotation(DefinesXml.class);
    if (definesXml != null) {
      return new DomElementXmlDescriptor(domElement);
    }
    final PsiElement parent = tag.getParent();
    if (parent instanceof XmlTag) {
      final XmlElementDescriptor descriptor = ((XmlTag)parent).getDescriptor();

      if (descriptor instanceof DomElementXmlDescriptor) {
        return descriptor.getElementDescriptor(tag, (XmlTag)parent);
      }
    }
  }

  return null;
}
项目:consulo-xml    文件:DomDescriptorProvider.java   
@Nullable
public XmlElementDescriptor getDescriptor(final XmlTag tag) {
  Project project = tag.getProject();
  if (project.isDefault()) return null;
  final DomElement domElement = DomManager.getDomManager(project).getDomElement(tag);
  if (domElement != null) {
    final DefinesXml definesXml = domElement.getAnnotation(DefinesXml.class);
    if (definesXml != null) {
      return new DomElementXmlDescriptor(domElement);
    }
    final PsiElement parent = tag.getParent();
    if (parent instanceof XmlTag) {
      final XmlElementDescriptor descriptor = ((XmlTag)parent).getDescriptor();

      if (descriptor instanceof DomElementXmlDescriptor) {
        return descriptor.getElementDescriptor(tag, (XmlTag)parent);
      }
    }
  }

  return null;
}
项目:intellij-ce-playground    文件:AndroidDomElementDescriptorProvider.java   
@Nullable
private static XmlElementDescriptor getDescriptor(DomElement domElement, XmlTag tag, @Nullable String baseClassName) {
  AndroidFacet facet = AndroidFacet.getInstance(domElement);
  if (facet == null) return null;
  final String name = domElement.getXmlTag().getName();
  final PsiClass aClass = baseClassName != null
                          ? SimpleClassMapConstructor.findClassByTagName(facet, name, baseClassName)
                          : null;
  final Icon icon = getIconForTag(name, domElement);

  final DefinesXml definesXml = domElement.getAnnotation(DefinesXml.class);
  if (definesXml != null) {
    return new AndroidXmlTagDescriptor(aClass, new DomElementXmlDescriptor(domElement), baseClassName, icon);
  }
  final PsiElement parent = tag.getParent();
  if (parent instanceof XmlTag) {
    final XmlElementDescriptor parentDescriptor = ((XmlTag)parent).getDescriptor();

    if (parentDescriptor != null && parentDescriptor instanceof AndroidXmlTagDescriptor) {
      XmlElementDescriptor domDescriptor = parentDescriptor.getElementDescriptor(tag, (XmlTag)parent);
      if (domDescriptor != null) {
        return new AndroidXmlTagDescriptor(aClass, domDescriptor, baseClassName, icon);
      }
    }
  }
  return null;
}