diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxReferencesContributor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxReferencesContributor.java index ab1cfcb22880..059533aefee4 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxReferencesContributor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxReferencesContributor.java @@ -45,9 +45,9 @@ public class JavaFxReferencesContributor extends PsiReferenceContributor { final PsiLiteralExpression literalExpression = (PsiLiteralExpression)context; PsiMethodCallExpression callExpression = PsiTreeUtil.getParentOfType(literalExpression, PsiMethodCallExpression.class); if (callExpression != null && "getResource".equals(callExpression.getMethodExpression().getReferenceName())) { - final PsiMethodCallExpression superCall = PsiTreeUtil.getParentOfType(callExpression, PsiMethodCallExpression.class, true); - if (superCall != null) { - final PsiReferenceExpression methodExpression = superCall.getMethodExpression(); + final PsiCallExpression superCall = PsiTreeUtil.getParentOfType(callExpression, PsiCallExpression.class, true); + if (superCall instanceof PsiMethodCallExpression) { + final PsiReferenceExpression methodExpression = ((PsiMethodCallExpression)superCall).getMethodExpression(); if ("load".equals(methodExpression.getReferenceName())) { final PsiExpression qualifierExpression = methodExpression.getQualifierExpression(); PsiClass psiClass = null; @@ -63,6 +63,14 @@ public class JavaFxReferencesContributor extends PsiReferenceContributor { return true; } } + } else if (superCall instanceof PsiNewExpression) { + final PsiJavaCodeReferenceElement reference = ((PsiNewExpression)superCall).getClassOrAnonymousClassReference(); + if (reference != null) { + final PsiElement resolve = reference.resolve(); + if (resolve instanceof PsiClass && JavaFxCommonClassNames.JAVAFX_FXML_FXMLLOADER.equals(((PsiClass)resolve).getQualifiedName())) { + return true; + } + } } } return false;