From 7933803b899b2fb94ee25e349b81f53615269600 Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 25 Mar 2013 17:34:11 +0100 Subject: [PATCH] javafx: do not include default properties in completion twice (cherry picked from commit cc8af6dba30d01d0bcc5928338eba6b8eb9f9a91) --- .../plugins/javaFX/fxml/JavaFxCompletionTest.java | 7 +++++++ .../descriptors/JavaFxClassBackedElementDescriptor.java | 8 ++++---- .../testData/completion/defaultPropertyIncludeOnce.fxml | 5 +++++ 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 plugins/javaFX/testData/completion/defaultPropertyIncludeOnce.fxml diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxCompletionTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxCompletionTest.java index 6aa4235ec361..f4dc9e7de8d5 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxCompletionTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxCompletionTest.java @@ -141,6 +141,13 @@ public class JavaFxCompletionTest extends LightFixtureCompletionTestCase { assertContainsElements(myFixture.getLookupElementStrings(), "image", "Image"); } + public void testDefaultPropertyIncludeOnce() throws Exception { + myFixture.configureByFiles(getTestName(true) + ".fxml"); + myItems = myFixture.completeBasic(); + assertContainsElements(myFixture.getLookupElementStrings(), "fx:reference"); + assertEquals(5, myItems.length); + } + public void testIncludedRootAttributes() throws Exception { myFixture.addFileToProject("foo.fxml", "\n" + "\n" + diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java index 69a9771bcc9c..c9081160ede5 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java @@ -72,6 +72,10 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, final JavaFxPropertyElementDescriptor defaultPropertyDescriptor = getDefaultPropertyDescriptor(); if (defaultPropertyDescriptor != null) { Collections.addAll(children, defaultPropertyDescriptor.getElementsDescriptors(context)); + } else { + for (String name : FxmlConstants.FX_DEFAULT_ELEMENTS) { + children.add(new JavaFxDefaultPropertyElementDescriptor(name, null)); + } } collectStaticElementDescriptors(context, children); @@ -81,10 +85,6 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, JavaFxPropertyElementDescriptor.collectDescriptorsByCollection(returnType, myPsiClass.getResolveScope(), children, myPsiClass.getProject()); } - for (String name : FxmlConstants.FX_DEFAULT_ELEMENTS) { - children.add(new JavaFxDefaultPropertyElementDescriptor(name, null)); - } - if (!children.isEmpty()) { return children.toArray(new XmlElementDescriptor[children.size()]); } diff --git a/plugins/javaFX/testData/completion/defaultPropertyIncludeOnce.fxml b/plugins/javaFX/testData/completion/defaultPropertyIncludeOnce.fxml new file mode 100644 index 000000000000..d7dd03be80af --- /dev/null +++ b/plugins/javaFX/testData/completion/defaultPropertyIncludeOnce.fxml @@ -0,0 +1,5 @@ + + + + +