rename initial
[idea/javafx-plugin.git] / src / org / jetbrains / javafx / lang / psi / impl / resolve / JavaFxReference.java
index dd765b4ae64cc4528b77ff8e1ad73704edfde162..1353f5031927aa56646630c2ec6f58e62466113c 100644 (file)
  */
 package org.jetbrains.javafx.lang.psi.impl.resolve;
 
+import com.intellij.lang.ASTNode;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiPolyVariantReferenceBase;
 import com.intellij.psi.ResolveResult;
 import com.intellij.psi.impl.PsiManagerEx;
 import com.intellij.psi.impl.source.resolve.ResolveCache;
+import com.intellij.util.IncorrectOperationException;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.javafx.lang.psi.JavaFxCallExpression;
 import org.jetbrains.javafx.lang.psi.JavaFxNewExpression;
 import org.jetbrains.javafx.lang.psi.JavaFxReferenceElement;
+import org.jetbrains.javafx.refactoring.JavaFxChangeUtil;
 
 /**
  * Created by IntelliJ IDEA.
@@ -73,6 +76,16 @@ public class JavaFxReference extends PsiPolyVariantReferenceBase<JavaFxReference
     return new JavaFxResolveProcessor(name);
   }
 
+  @Override
+  public PsiElement handleElementRename(final String newElementName) throws IncorrectOperationException {
+    final ASTNode nameElement = myElement.getNameNode();
+    if (nameElement != null) {
+      final ASTNode newNameElement = JavaFxChangeUtil.createNameIdentifier(myElement.getProject(), newElementName);
+      myElement.getNode().replaceChild(nameElement, newNameElement);
+    }
+    return myElement;
+  }
+
   @NotNull
   @Override
   public Object[] getVariants() {