mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
disable replace constructor with builder action for classes without constructors; description
This commit is contained in:
+11
@@ -21,7 +21,10 @@
|
||||
package com.intellij.refactoring.actions;
|
||||
|
||||
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.refactoring.RefactoringActionHandler;
|
||||
import com.intellij.refactoring.replaceConstructorWithBuilder.ReplaceConstructorWithBuilderHandler;
|
||||
|
||||
@@ -30,6 +33,14 @@ public class ReplaceConstructorWithBuilderAction extends BaseRefactoringAction{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) {
|
||||
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;
|
||||
}
|
||||
|
||||
protected boolean isEnabledOnElements(final PsiElement[] elements) {
|
||||
return false;
|
||||
}
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ public class ReplaceConstructorWithBuilderHandler implements RefactoringActionHa
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PsiClass getParentNamedClass(PsiElement element) {
|
||||
public static PsiClass getParentNamedClass(PsiElement element) {
|
||||
final PsiClass psiClass = PsiTreeUtil.getParentOfType(element, PsiClass.class);
|
||||
if (psiClass instanceof PsiAnonymousClass) {
|
||||
return getParentNamedClass(psiClass);
|
||||
|
||||
Reference in New Issue
Block a user