| package com.intellij.refactoring; |
| |
| import com.intellij.openapi.editor.Editor; |
| import com.intellij.openapi.project.Project; |
| import com.intellij.psi.*; |
| import com.intellij.psi.codeStyle.JavaCodeStyleManager; |
| import com.intellij.psi.codeStyle.SuggestedNameInfo; |
| import com.intellij.psi.codeStyle.VariableKind; |
| import com.intellij.refactoring.introduceField.IntroduceFieldHandler; |
| |
| /** |
| * @author ven |
| */ |
| public class MockIntroduceFieldHandler extends IntroduceFieldHandler { |
| private final InitializationPlace myInitializationPlace; |
| private final boolean myDeclareStatic; |
| |
| public MockIntroduceFieldHandler(final InitializationPlace initializationPlace, final boolean declareStatic) { |
| myInitializationPlace = initializationPlace; |
| myDeclareStatic = declareStatic; |
| } |
| |
| @Override |
| protected Settings showRefactoringDialog(Project project, Editor editor, PsiClass parentClass, PsiExpression expr, PsiType type, |
| PsiExpression[] occurrences, PsiElement anchorElement, PsiElement anchorElementIfAll) { |
| final String fieldName = getNewName(project, expr, type); |
| return new Settings(fieldName, expr, occurrences, true, myDeclareStatic, true, myInitializationPlace, |
| PsiModifier.PUBLIC, |
| null, |
| getFieldType(type), true, (TargetDestination)null, false, false); |
| } |
| |
| protected String getNewName(Project project, PsiExpression expr, PsiType type) { |
| SuggestedNameInfo name = JavaCodeStyleManager.getInstance(project).suggestVariableName(VariableKind.FIELD, null, expr, type); |
| return name.names[0]; |
| } |
| |
| protected PsiType getFieldType(PsiType type) { |
| return type; |
| } |
| } |