From aa1c9755d4abbedc35a515be2fda73f2b814f025 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 30 Jan 2013 13:58:08 +0400 Subject: [PATCH] javafx: check that refs from .fxml are public or @FXML (IDEA-99996) --- plugins/javaFX/src/META-INF/plugin.xml | 1 + .../javaFX/fxml/JavaFxCommonClassNames.java | 2 +- .../refs/JavaFxEventHandlerReference.java | 12 ++-- .../javaFX/fxml/refs/JavaFxRefsAnnotator.java | 59 +++++++++++++++++++ .../highlighting/PackageLocalController.fxml | 8 +++ .../highlighting/PackageLocalController.java | 1 + .../javaFX/fxml/JavaFXHighlightingTest.java | 5 ++ 7 files changed, 80 insertions(+), 8 deletions(-) create mode 100644 plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxRefsAnnotator.java create mode 100644 plugins/javaFX/testData/highlighting/PackageLocalController.fxml create mode 100644 plugins/javaFX/testData/highlighting/PackageLocalController.java diff --git a/plugins/javaFX/src/META-INF/plugin.xml b/plugins/javaFX/src/META-INF/plugin.xml index f3506c41f7c1..200ab7ca86f0 100644 --- a/plugins/javaFX/src/META-INF/plugin.xml +++ b/plugins/javaFX/src/META-INF/plugin.xml @@ -17,5 +17,6 @@ + diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxCommonClassNames.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxCommonClassNames.java index 35b898ca1990..b400cbc0ae65 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxCommonClassNames.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxCommonClassNames.java @@ -26,7 +26,7 @@ public class JavaFxCommonClassNames { @NonNls public static final String JAVAFX_ANCHOR_PANE = "javafx.scene.layout.AnchorPane"; @NonNls public static final String JAVAFX_EVENT = "javafx.event.Event"; @NonNls public static final String JAVAFX_BEANS_DEFAULT_PROPERTY = "javafx.beans.DefaultProperty"; - @NonNls public static final String JAVAFX_FXML_FXML = "javafx.fxml.FXML"; + @NonNls public static final String JAVAFX_FXML_ANNOTATION = "javafx.fxml.FXML"; @NonNls public static final String JAVAFX_BEANS_PROPERTY_OBJECT_PROPERTY = "javafx.beans.property.ObjectProperty"; @NonNls public static final String JAVAFX_EVENT_EVENT_HANDLER = "javafx.event.EventHandler"; public static final String JAVAFX_SCENE_NODE = "javafx.scene.Node"; 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 0f8603bf1108..1cc90cbbc83f 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 @@ -73,13 +73,11 @@ public class JavaFxEventHandlerReference extends PsiReferenceBase + + + + + +"PackageLocalController" xmlns:fx="http://javafx.com/fxml"> + \ No newline at end of file diff --git a/plugins/javaFX/testData/highlighting/PackageLocalController.java b/plugins/javaFX/testData/highlighting/PackageLocalController.java new file mode 100644 index 000000000000..4899276eb770 --- /dev/null +++ b/plugins/javaFX/testData/highlighting/PackageLocalController.java @@ -0,0 +1 @@ +class PackageLocalController{} \ No newline at end of file diff --git a/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java b/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java index aa8d06b38c70..ae6393378523 100644 --- a/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java +++ b/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java @@ -62,6 +62,11 @@ public class JavaFXHighlightingTest extends DaemonAnalyzerTestCase { public void testControllerIdRef() throws Exception { doTestIdController(); } + + public void testPackageLocalController() throws Exception { + configureByFiles(null, getTestName(true) + ".fxml", getTestName(false) + ".java"); + doDoTest(false, false); + } private void doTestIdController() throws Exception { final String controllerClassName = getTestName(false) + "Controller";