1 19 20 package org.netbeans.modules.refactoring.java.ui; 21 22 import java.text.MessageFormat ; 23 import java.util.Arrays ; 24 import java.util.ResourceBundle ; 25 import javax.swing.event.ChangeListener ; 26 import org.netbeans.api.java.source.CompilationInfo; 27 import org.netbeans.api.java.source.TreePathHandle; 28 import org.netbeans.modules.refactoring.api.AbstractRefactoring; 29 import org.netbeans.modules.refactoring.api.Problem; 30 import org.netbeans.modules.refactoring.api.SafeDeleteRefactoring; 31 import org.netbeans.modules.refactoring.spi.ui.CustomRefactoringPanel; 32 import org.netbeans.modules.refactoring.spi.ui.RefactoringUI; 33 import org.openide.filesystems.FileObject; 34 import org.openide.util.HelpCtx; 35 import org.openide.util.NbBundle; 36 import org.openide.util.lookup.Lookups; 37 38 42 public class SafeDeleteUI implements RefactoringUI{ 43 44 private final Object [] elementsToDelete; 45 46 private final SafeDeleteRefactoring refactoring; 47 48 private SafeDeletePanel panel; 49 50 private ResourceBundle bundle; 51 52 57 public SafeDeleteUI(FileObject[] selectedElements) { 58 this.elementsToDelete = selectedElements; 59 refactoring = new SafeDeleteRefactoring(Lookups.fixed(elementsToDelete)); 60 } 61 62 67 public SafeDeleteUI(TreePathHandle[] selectedElements, CompilationInfo info) { 68 this.elementsToDelete = selectedElements; 69 refactoring = new SafeDeleteRefactoring(Lookups.fixed(elementsToDelete)); 70 refactoring.getContext().add(info.getClasspathInfo()); 71 } 72 73 79 public org.netbeans.modules.refactoring.api.Problem checkParameters() { 80 refactoring.setCheckInComments(panel.isSearchInComments()); 81 return refactoring.fastCheckParameters(); 82 } 83 84 public String getDescription() { 85 return NbBundle.getMessage(SafeDeleteUI.class, "DSC_SafeDel", elementsToDelete); } 103 104 public org.openide.util.HelpCtx getHelpCtx() { 105 106 return new HelpCtx(SafeDeleteUI.class.getName()); 107 } 108 109 public String getName() { 110 111 return NbBundle.getMessage(SafeDeleteUI.class, "LBL_SafeDel"); } 113 114 public CustomRefactoringPanel getPanel(ChangeListener parent) { 115 if(panel == null) 117 panel = new SafeDeletePanel(refactoring, Arrays.asList(elementsToDelete)); 118 return panel; 119 } 120 121 public AbstractRefactoring getRefactoring() { 122 123 return refactoring; 124 } 125 126 public boolean hasParameters() { 127 128 return true; 129 } 130 134 public boolean isQuery() { 135 return false; 136 } 137 138 public Problem setParameters() { 139 refactoring.setCheckInComments(panel.isSearchInComments()); 140 return refactoring.checkParameters(); 141 } 142 143 145 private String getString(String key) { 146 if (bundle == null) { 147 bundle = NbBundle.getBundle(SafeDeleteUI.class); 148 } 149 return bundle.getString(key); 150 } 151 152 private String getString(String key, Object value) { 153 return new MessageFormat (getString(key)).format(new Object [] {value}); 154 } 155 156 157 } 158 | Popular Tags |