public PyInplaceFieldIntroducer( PyTargetExpression target, IntroduceOperation operation, List<PsiElement> occurrences) { super( target, operation.getEditor(), operation.getProject(), "Introduce Field", occurrences.toArray(new PsiElement[occurrences.size()]), null); myTarget = target; myOperation = operation; if (operation.getAvailableInitPlaces().size() > 1) { myPanel = new PyIntroduceFieldPanel(myProject, operation.getAvailableInitPlaces()); } else { myPanel = null; } }
@Override protected boolean checkEnabled(IntroduceOperation operation) { if (PyUtil.getContainingClassOrSelf(operation.getElement()) == null) { CommonRefactoringUtil.showErrorHint( operation.getProject(), operation.getEditor(), "Cannot introduce field: not in class", myDialogTitle, getHelpId()); return false; } if (dependsOnLocalScopeValues(operation.getElement())) { operation.removeAvailableInitPlace(InitPlace.CONSTRUCTOR); operation.removeAvailableInitPlace(InitPlace.SET_UP); } return true; }