From 0d66f07f7eda9d63be5f586e4d25a1fa269b723a Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 15 Apr 2013 20:02:27 +0200 Subject: [PATCH] javafx: provide primitive completion for underlying non-static setters --- .../jetbrains/plugins/javaFX/fxml/JavaFxCompletionTest.java | 6 ++++++ .../fxml/descriptors/JavaFxPropertyAttributeDescriptor.java | 5 +++-- .../javaFX/testData/completion/booleanValuesNonStatic.fxml | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 plugins/javaFX/testData/completion/booleanValuesNonStatic.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 10a2b2be1c30..092dd4bf7c62 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 @@ -159,6 +159,12 @@ public class JavaFxCompletionTest extends LightFixtureCompletionTestCase { assertContainsElements(myFixture.getLookupElementStrings(), "true", "false"); } + public void testBooleanValuesNonStatic() throws Exception { + myFixture.configureByFiles(getTestName(true) + ".fxml"); + complete(); + assertContainsElements(myFixture.getLookupElementStrings(), "true", "false"); + } + public void testDefaultPropertyIncludeOnce() throws Exception { myFixture.configureByFiles(getTestName(true) + ".fxml"); myItems = myFixture.completeBasic(); diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java index 8c0ff3d847b3..69cb857949e8 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java @@ -178,8 +178,9 @@ public class JavaFxPropertyAttributeDescriptor implements XmlAttributeDescriptor attrType = JavaFxPsiUtil.getWrappedPropertyType((PsiField)declaration, declaration.getProject(), JavaFxCommonClassNames.ourWritableMap); } else if (declaration instanceof PsiMethod) { final PsiParameter[] parameters = ((PsiMethod)declaration).getParameterList().getParameters(); - if (parameters.length == 2) { - attrType = parameters[1].getType(); + final boolean isStatic = ((PsiMethod)declaration).hasModifierProperty(PsiModifier.STATIC); + if (isStatic && parameters.length == 2 || !isStatic && parameters.length == 1) { + attrType = parameters[parameters.length - 1].getType(); } } diff --git a/plugins/javaFX/testData/completion/booleanValuesNonStatic.fxml b/plugins/javaFX/testData/completion/booleanValuesNonStatic.fxml new file mode 100644 index 000000000000..dd6f82454430 --- /dev/null +++ b/plugins/javaFX/testData/completion/booleanValuesNonStatic.fxml @@ -0,0 +1,2 @@ + + \ No newline at end of file