javafx: read only properties: skip observable listss (IDEA-100498)

This commit is contained in:
Anna Kozlova
2013-02-06 16:03:04 +04:00
parent 47176b7922
commit a0c94cf63d
3 changed files with 13 additions and 7 deletions
@@ -32,5 +32,6 @@ public class JavaFxCommonClassNames {
@NonNls public static final String JAVAFX_SCENE_NODE = "javafx.scene.Node";
@NonNls public static final String JAVAFX_SCENE_PAINT = "javafx.scene.paint.Paint";
@NonNls public static final String JAVAFX_FXML_BUILDER = "javafx.util.Builder";
public static final String VALUE_OF = "valueOf";
@NonNls public static final String JAVAFX_BEANS_OBSERVABLE = "javafx.beans.Observable";
@NonNls public static final String VALUE_OF = "valueOf";
}
@@ -37,6 +37,7 @@ import java.util.List;
* User: anna
*/
public class JavaFxPsiUtil {
public static XmlProcessingInstruction createSingleImportInstruction(String qualifiedName, Project project) {
final String importText = "<?import " + qualifiedName + "?>";
final PsiElement child =
@@ -278,7 +279,8 @@ public class JavaFxPsiUtil {
final PsiField psiField = psiClass.findFieldByName(attributeName, true);
if (psiField != null) {
if (findPropertySetter(attributeName, (PsiClass)declaration) == null &&
findPropertySetter(attributeName, tag) == null) {
findPropertySetter(attributeName, tag) == null &&
!InheritanceUtil.isInheritor(psiField.getType(), "javafx.collections.ObservableList")) {
//todo read only condition?
final PsiMethod[] constructors = psiClass.getConstructors();
for (PsiMethod constructor : constructors) {
@@ -1,5 +1,8 @@
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Region?>
<GridPane xmlns:fx="http://javafx.com/fxml">
<Region <error descr="Property 'backgroundFills' is read-only">backgroundFills=""</error>/>
</GridPane>
<?import javafx.scene.layout.AnchorPane?>
<?import java.lang.String?>
<AnchorPane id="AnchorPane" xmlns:fx="http://javafx.com/fxml" stylesheets="mystyle.css" <error descr="Property 'backgroundFills' is read-only">backgroundFills=""</error>>
<stylesheets>
<String fx:value="mystyle.css"/>
</stylesheets>
</AnchorPane>