@Override
  public XmlElementDescriptor[] getElementsDescriptors(XmlTag context) {
    if (context != null) {
      final PsiClass psiClass = getPsiClass();
      if (psiClass != null) {
        final List<XmlElementDescriptor> children = new ArrayList<>();
        collectWritableProperties(children,
                                  member -> new JavaFxPropertyTagDescriptor(psiClass, PropertyUtilBase.getPropertyName(member), false));

        final JavaFxPropertyTagDescriptor defaultPropertyDescriptor = getDefaultPropertyDescriptor();
        if (defaultPropertyDescriptor != null) {
          Collections.addAll(children, defaultPropertyDescriptor.getElementsDescriptors(context));
        }
        else {
          for (String name : FxmlConstants.FX_BUILT_IN_TAGS) {
            children.add(new JavaFxBuiltInTagDescriptor(name, null));
          }
        }

        collectStaticElementDescriptors(context, children);

        if (!children.isEmpty()) {
          return children.toArray(XmlElementDescriptor.EMPTY_ARRAY);
        }
      }
    }
    return XmlElementDescriptor.EMPTY_ARRAY;
  }
@Override
  public XmlElementDescriptor[] getElementsDescriptors(XmlTag context)