IDEA-79529 Groovy: Change Signature Refactoring doesn't work when renaming a method which implements Java interface

This commit is contained in:
Maxim.Medvedev
2012-01-11 14:30:56 +04:00
parent 890df2a664
commit 0cc17bf60d
4 changed files with 20 additions and 5 deletions
@@ -15,8 +15,11 @@
*/
package com.intellij.refactoring.changeSignature;
import com.intellij.lang.LanguageRefactoringSupport;
import com.intellij.openapi.project.Project;
import com.intellij.psi.JavaTokenType;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.impl.source.tree.Factory;
import com.intellij.psi.impl.source.tree.SharedImplUtil;
import com.intellij.psi.util.PsiUtilBase;
@@ -97,6 +100,12 @@ public class ChangeSignatureUtil {
}
}
public static void invokeChangeSignatureOn(PsiMethod method, Project project) {
final ChangeSignatureHandler handler =
LanguageRefactoringSupport.INSTANCE.forLanguage(method.getLanguage()).getChangeSignatureHandler();
handler.invoke(project, new PsiElement[]{method}, null);
}
public interface ChildrenGenerator<Parent extends PsiElement, Child extends PsiElement> {
List<Child> getChildren(Parent parent);
}
@@ -63,9 +63,9 @@ public class JavaChangeSignatureHandler implements ChangeSignatureHandler {
}
}
public void invoke(@NotNull final Project project, @NotNull final PsiElement[] elements, final DataContext dataContext) {
public void invoke(@NotNull final Project project, @NotNull final PsiElement[] elements, @Nullable final DataContext dataContext) {
if (elements.length != 1) return;
Editor editor = PlatformDataKeys.EDITOR.getData(dataContext);
Editor editor = dataContext != null ? PlatformDataKeys.EDITOR.getData(dataContext) : null;
invokeOnElement(project, editor, elements[0]);
}
@@ -76,7 +76,7 @@ public class JavaChangeSignatureHandler implements ChangeSignatureHandler {
if (newMethod == null) return;
if (!newMethod.equals(method)) {
invoke(newMethod, project, editor);
ChangeSignatureUtil.invokeChangeSignatureOn(newMethod, project);
return;
}