From 259435bbc8e209c102d01eb0c61688b73e298fb0 Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Thu, 12 May 2016 19:37:40 +0300 Subject: [PATCH] Javafx: Highlighting for private event handler methods marked with @FXML (IDEA-151633) --- .../javaFX/fxml/JavaFXHighlightingTest.java | 27 ++++++ .../JavaFxImplicitUsageProvider.java | 93 +++++++++++++++---- .../javaFX/fxml/refs/JavaFxScopeEnlarger.java | 2 +- .../indexing/JavaFxControllerClassIndex.java | 10 +- .../javaFX/indexing/JavaFxIdsIndex.java | 4 +- .../EventHandlerInSuperclass.java | 9 ++ .../highlighting/FxIdInSuperclass.java | 9 ++ .../highlighting/PrivateEventHandler.java | 9 ++ .../highlighting/privateEventHandler.fxml | 6 ++ 9 files changed, 147 insertions(+), 22 deletions(-) create mode 100644 plugins/javaFX/testData/highlighting/EventHandlerInSuperclass.java create mode 100644 plugins/javaFX/testData/highlighting/FxIdInSuperclass.java create mode 100644 plugins/javaFX/testData/highlighting/PrivateEventHandler.java create mode 100644 plugins/javaFX/testData/highlighting/privateEventHandler.fxml diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java index d419f44313e1..af1d00f56f6a 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java @@ -444,6 +444,33 @@ public class JavaFXHighlightingTest extends AbstractJavaFXTestCase { doTest(); } + public void testPrivateEventHandler() throws Exception { + myFixture.configureByFiles(getTestName(true) + ".fxml", getTestName(false) + ".java"); + myFixture.testHighlighting(true, true, true, getTestName(false) + ".java"); + } + + public void testFxIdInSuperclass() throws Exception { + doTestControllerSuperclass(); + } + + public void testEventHandlerInSuperclass() throws Exception { + doTestControllerSuperclass(); + } + + private void doTestControllerSuperclass() { + final String superclass = getTestName(false); + myFixture.copyFileToProject(superclass + ".java"); + myFixture.addClass("public class SubclassingController extends " + superclass + " {}"); + myFixture.addFileToProject("sample.fxml", "\n" + + "\n" + + "\n" + + "