private Object[] collectProperties(@NotNull PsiType propertyType, @NotNull Project project) {
      final PsiType resolvedType = JavaFxPsiUtil.getWritablePropertyType(propertyType, project);
      final List<LookupElement> objs = new ArrayList<>();
      final Collection<PsiMember> readableProperties = JavaFxPsiUtil.getReadableProperties(myPsiClass).values();
      for (PsiMember readableMember : readableProperties) {
        final PsiType readableType = JavaFxPsiUtil.getReadablePropertyType(readableMember);
        if (readableType == null) continue;
        if (TypeConversionUtil.isAssignable(propertyType, readableType) ||
            resolvedType != null && TypeConversionUtil.isAssignable(resolvedType, readableType)) {
          final String propertyName = PropertyUtilBase.getPropertyName(readableMember);
          if (propertyName != null) {
            objs.add(LookupElementBuilder.create(readableMember, propertyName));
          }
        }
      }
      return ArrayUtil.toObjectArray(objs);
    }
private Object[] collectProperties(@NotNull PsiType propertyType, @NotNull Project project)