@Override
  protected void collectNavigationMarkers(@NotNull PsiElement element, final @NotNull Collection<? super RelatedItemLineMarkerInfo<?>> result) {
    PsiElement f;
    if (element instanceof PsiIdentifier && (f = element.getParent()) instanceof PsiField) {
      final PsiField field = (PsiField)f;
      if (JavaFxPsiUtil.isVisibleInFxml(field) && !field.hasModifierProperty(PsiModifier.STATIC) && !field.hasModifierProperty(PsiModifier.FINAL)) {
        final PsiClass containingClass = field.getContainingClass();
        if (containingClass != null && containingClass.hasModifierProperty(PsiModifier.PUBLIC) && containingClass.getQualifiedName() != null) {
          final PsiMethod[] constructors = containingClass.getConstructors();
          boolean defaultConstructor = constructors.length == 0;
          for (PsiMethod constructor : constructors) {
            if (constructor.getParameterList().isEmpty()) {
              defaultConstructor = true;
              break;
            }
          }
          if (!defaultConstructor) return;
          final ArrayList<GotoRelatedItem> targets = new ArrayList<>();
          collectTargets(field, targets, GotoRelatedItem::new, true);
          if (targets.isEmpty()) return;

          result.add(new RelatedItemLineMarkerInfo<>((PsiIdentifier)element, element.getTextRange(),
                                                     AllIcons.FileTypes.Xml, null,
                                                     new JavaFXIdIconNavigationHandler(), GutterIconRenderer.Alignment.LEFT,
                                                     ()->targets));
        }
      }
    }
  }
@Override
  protected void collectNavigationMarkers(@NotNull PsiElement element, final @NotNull Collection<? super RelatedItemLineMarkerInfo<?>> result)