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 @@ + + + + +