From c1d5562e8639c813fcbd4ad8d935e1e33490ba14 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 21 Feb 2013 20:14:41 +0100 Subject: [PATCH] javafx: make tag types depend on hierarchy position (IDEA-101617) --- .../javaFX/fxml/JavaFXHighlightingTest.java | 5 ++++ .../javaFX/fxml/JavaFXNSDescriptor.java | 20 ++++++------- .../plugins/javaFX/fxml/JavaFxPsiUtil.java | 11 +------ .../JavaFxDefaultTagInspection.java | 7 +++-- .../JavaFxClassBackedElementDescriptor.java | 30 +++++++++++-------- ...avaFxDefaultPropertyElementDescriptor.java | 14 ++++++--- .../JavaFxPropertyElementDescriptor.java | 8 +---- .../highlighting/custom/_CustomVBox.java | 16 ++++++++++ .../custom/customComponent_Fields.fxml | 5 ++++ 9 files changed, 69 insertions(+), 47 deletions(-) create mode 100644 plugins/javaFX/testData/highlighting/custom/_CustomVBox.java create mode 100644 plugins/javaFX/testData/highlighting/custom/customComponent_Fields.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 e12d14a0f7c0..666f905be3a2 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 @@ -119,6 +119,11 @@ public class JavaFXHighlightingTest extends DaemonAnalyzerTestCase { doTestNavigation("CustomVBox", "tf", "custom/" + getTestName(true) + ".fxml", "custom/CustomVBox.java"); } + public void testCustomComponent_Fields() throws Exception { + configureByFiles(null, "custom/" + getTestName(true) + ".fxml", "custom/_CustomVBox.java"); + doDoTest(false, false); + } + private void doTestNavigation(String resultClassName, String resultFieldName) throws Exception { doTestNavigation(resultClassName, resultFieldName, ArrayUtil.EMPTY_STRING_ARRAY); } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFXNSDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFXNSDescriptor.java index ccc02fd95a11..7044f922600d 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFXNSDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFXNSDescriptor.java @@ -2,7 +2,9 @@ package org.jetbrains.plugins.javaFX.fxml; import com.intellij.codeInsight.daemon.Validator; import com.intellij.psi.PsiElement; -import com.intellij.psi.xml.*; +import com.intellij.psi.xml.XmlDocument; +import com.intellij.psi.xml.XmlFile; +import com.intellij.psi.xml.XmlTag; import com.intellij.util.ArrayUtil; import com.intellij.xml.XmlElementDescriptor; import com.intellij.xml.XmlNSDescriptor; @@ -25,19 +27,15 @@ public class JavaFXNSDescriptor implements XmlNSDescriptor, Validator 0); - } - return null; + return new JavaFxClassBackedElementDescriptor(name, childTag); } @Override diff --git a/plugins/javaFX/testData/highlighting/custom/_CustomVBox.java b/plugins/javaFX/testData/highlighting/custom/_CustomVBox.java new file mode 100644 index 000000000000..357677704951 --- /dev/null +++ b/plugins/javaFX/testData/highlighting/custom/_CustomVBox.java @@ -0,0 +1,16 @@ +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.VBox; + + +public class _CustomVBox extends VBox { + @FXML + private TextField tf; + @FXML + private Label lab1; + @FXML + void myMethod(){ + lab1.setText(tf.getText()); + } +} \ No newline at end of file diff --git a/plugins/javaFX/testData/highlighting/custom/customComponent_Fields.fxml b/plugins/javaFX/testData/highlighting/custom/customComponent_Fields.fxml new file mode 100644 index 000000000000..af7ac78b9d5e --- /dev/null +++ b/plugins/javaFX/testData/highlighting/custom/customComponent_Fields.fxml @@ -0,0 +1,5 @@ + + + + <_CustomVBox/> + \ No newline at end of file