1 19 package org.netbeans.modules.refactoring.experimental.ui; 20 import org.netbeans.jmi.javamodel.ArrayAccess; 21 import org.netbeans.jmi.javamodel.Element; 22 import org.netbeans.jmi.javamodel.Expression; 23 import org.netbeans.jmi.javamodel.JavaModelPackage; 24 import org.netbeans.jmi.javamodel.Type; 25 import org.netbeans.modules.refactoring.spi.ui.CustomRefactoringPanel; 26 import org.netbeans.modules.refactoring.spi.ui.RefactoringUI; 27 import org.netbeans.modules.refactoring.experimental.IntroduceVariableRefactoring; 28 import org.openide.util.HelpCtx; 29 import org.openide.util.NbBundle; 30 31 35 public class IntroduceVariableRefactoringUI implements RefactoringUI { 36 private final IntroduceVariableRefactoring refactoring; 37 private Expression expression; 38 private IntroduceVariablePanel panel; 39 40 public IntroduceVariableRefactoringUI(Element element, int startOffset, int endOffset) { 41 refactoring = new IntroduceVariableRefactoring(element, startOffset, endOffset); 42 this.expression = refactoring.getExpression(); 43 } 44 45 public boolean isQuery() { 46 return false; 47 } 48 49 public CustomRefactoringPanel getPanel(org.netbeans.modules.refactoring.spi.ui.ParametersPanel parent) { 50 if (panel == null) { 51 Type[] types; 52 if (expression != null) { 53 Type type = null; 54 if (expression instanceof ArrayAccess) { type = ((org.netbeans.jmi.javamodel.Array)((ArrayAccess) expression).getArray().getType()).getType(); 56 } else { 57 type = expression.getType(); 58 } 59 if (type == null) { 60 JavaModelPackage pkg = (JavaModelPackage) expression.refOutermostPackage(); 61 type = pkg.getType().resolve("java.lang.Object"); } 63 types = new Type[] {type}; 64 } else { 65 types = new Type[0]; 66 } 67 panel = new IntroduceVariablePanel(parent, "lokalek", types); } 69 return panel; 70 } 71 72 public org.netbeans.modules.refactoring.api.Problem setParameters() { 73 refactoring.setVariableName(panel.getVariableName()); 74 refactoring.setFinal(panel.declareFinal()); 75 refactoring.setReplaceAll(panel.replaceAllOccurrences()); 76 refactoring.setVariableType(panel.getVariableType()); 77 return refactoring.checkParameters(); 78 } 79 80 public org.netbeans.modules.refactoring.api.Problem checkParameters() { 81 89 refactoring.setVariableName(panel.getVariableName()); 90 refactoring.setFinal(panel.declareFinal()); 91 refactoring.setReplaceAll(panel.replaceAllOccurrences()); 92 refactoring.setVariableType(panel.getVariableType()); 93 return refactoring.fastCheckParameters(); 94 } 95 96 public org.netbeans.modules.refactoring.api.AbstractRefactoring getRefactoring() { 97 return refactoring; 98 } 99 100 public String getDescription() { 101 return ""; 107 } 108 109 public String getName() { 110 return NbBundle.getMessage(IntroduceVariableAction.class, "LBL_IntroduceVariable"); 111 } 112 113 public boolean hasParameters() { 114 return true; 115 } 116 117 public HelpCtx getHelpCtx() { 118 return new HelpCtx(IntroduceVariableRefactoringUI.class.getName()); 119 } 120 } 121 | Popular Tags |