mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 09:03:31 +07:00
disable replace constructor with builder/factory for enums (IDEA-141299)
This commit is contained in:
+1
-1
@@ -39,7 +39,7 @@ public class ReplaceConstructorWithBuilderAction extends BaseRefactoringAction{
|
||||
final int offset = editor.getCaretModel().getOffset();
|
||||
final PsiElement elementAt = file.findElementAt(offset);
|
||||
final PsiClass psiClass = ReplaceConstructorWithBuilderHandler.getParentNamedClass(elementAt);
|
||||
return psiClass != null && psiClass.getConstructors().length > 0;
|
||||
return psiClass != null && psiClass.getConstructors().length > 0 && !psiClass.isEnum();
|
||||
}
|
||||
|
||||
protected boolean isEnabledOnElements(@NotNull final PsiElement[] elements) {
|
||||
|
||||
+20
-3
@@ -17,8 +17,10 @@ package com.intellij.refactoring.actions;
|
||||
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.refactoring.RefactoringActionHandler;
|
||||
import com.intellij.refactoring.replaceConstructorWithFactory.ReplaceConstructorWithFactoryHandler;
|
||||
@@ -32,10 +34,25 @@ public class ReplaceConstructorWithFactoryAction extends BaseRefactoringAction {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isEnabledOnElements(@NotNull PsiElement[] elements) {
|
||||
return elements.length == 1 &&
|
||||
(elements[0] instanceof PsiMethod && ((PsiMethod)elements[0]).isConstructor() || elements[0] instanceof PsiClass)
|
||||
&& elements[0].getLanguage().isKindOf(JavaLanguage.INSTANCE);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAvailableOnElementInEditorAndFile(@NotNull PsiElement element,
|
||||
@NotNull Editor editor,
|
||||
@NotNull PsiFile file,
|
||||
@NotNull DataContext context) {
|
||||
return (element instanceof PsiMethod &&
|
||||
((PsiMethod)element).isConstructor() &&
|
||||
acceptClass(((PsiMethod)element).getContainingClass()) ||
|
||||
acceptClass(element))
|
||||
&& element.getLanguage().isKindOf(JavaLanguage.INSTANCE);
|
||||
}
|
||||
|
||||
private static boolean acceptClass(PsiElement element) {
|
||||
return element instanceof PsiClass && !((PsiClass)element).isEnum();
|
||||
}
|
||||
|
||||
protected RefactoringActionHandler getHandler(@NotNull DataContext dataContext) {
|
||||
|
||||
Reference in New Issue
Block a user