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;
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;
}
}
@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);
action.WrapReturnValue.text=Wrap Method Re_turn Value...
action.WrapReturnValue.description=Wrap return value of the specified method with object
action.ReplaceConstructorWithBuilder.text=Replace Constructor with Builder...
-action.ReplaceConstructorWithBuilder.description=Replace Constructor with Builder
+action.ReplaceConstructorWithBuilder.description=Replace current class constructors calls with chained calls to the builder
action.WelcomeScreen.ShowTips.text=Tips of the Day
action.WelcomeScreen.ShowTips.description=Learn how to increase your coding productivity.
action.ShelvedChanges.ShowHideDeleted.text=Show/Hide Applied Shelved Changes