diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java index 399214ed04f8..3b3e18c65c18 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java @@ -79,6 +79,11 @@ public class JavaFxPropertyAttributeDescriptor implements XmlAttributeDescriptor } public static PsiClass getPropertyClass(PsiElement field) { + final PsiClassType classType = getPropertyClassType(field); + return classType != null ? classType.resolve() : null; + } + + public static PsiClassType getPropertyClassType(PsiElement field) { if (field instanceof PsiField) { final PsiType type = ((PsiField)field).getType(); if (type instanceof PsiClassType) { @@ -93,7 +98,7 @@ public class JavaFxPropertyAttributeDescriptor implements XmlAttributeDescriptor if (superClassSubstitutor != null) { final PsiType propertyType = superClassSubstitutor.substitute(objectProperty.getTypeParameters()[0]); if (propertyType instanceof PsiClassType) { - return ((PsiClassType)propertyType).resolve(); + return (PsiClassType)propertyType; } } } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxEventHandlerReference.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxEventHandlerReference.java index 88830dc4dbb7..0f8603bf1108 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxEventHandlerReference.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxEventHandlerReference.java @@ -19,14 +19,19 @@ import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.daemon.QuickFixActionRegistrar; import com.intellij.codeInsight.daemon.impl.quickfix.CreateMethodQuickFix; import com.intellij.codeInsight.quickfix.UnresolvedReferenceQuickFixProvider; +import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; +import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.InheritanceUtil; +import com.intellij.psi.util.TypeConversionUtil; +import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlAttributeValue; import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.javaFX.fxml.JavaFxCommonClassNames; +import org.jetbrains.plugins.javaFX.fxml.descriptors.JavaFxPropertyAttributeDescriptor; import java.util.ArrayList; import java.util.List; @@ -36,11 +41,13 @@ import java.util.List; * Date: 1/16/13 */ public class JavaFxEventHandlerReference extends PsiReferenceBase { - private PsiMethod myEventHandler; + private final PsiClass myCurrentTagClass; + private final PsiMethod myEventHandler; private final PsiClass myController; - public JavaFxEventHandlerReference(XmlAttributeValue element, final PsiMethod method, PsiClass controller) { + public JavaFxEventHandlerReference(XmlAttributeValue element, PsiClass currentTagClass, final PsiMethod method, PsiClass controller) { super(element); + myCurrentTagClass = currentTagClass; myEventHandler = method; myController = controller; } @@ -98,7 +105,29 @@ public class JavaFxEventHandlerReference extends PsiReferenceBase + + +