1 19 20 package org.netbeans.modules.xml.refactoring.ui.j.spi.ui; 21 22 import java.awt.Component ; 23 import java.awt.Dimension ; 24 import java.text.MessageFormat ; 25 import java.util.ArrayList ; 26 import java.util.Collection ; 27 import java.util.HashMap ; 28 import java.util.Map ; 29 import javax.swing.Icon ; 30 import javax.swing.ImageIcon ; 31 import javax.swing.event.ChangeListener ; 32 import org.netbeans.modules.refactoring.api.RefactoringElement; 33 import org.netbeans.modules.refactoring.api.SafeDeleteRefactoring; 34 import org.netbeans.modules.refactoring.spi.RefactoringElementImplementation; 35 import org.netbeans.modules.refactoring.spi.ui.RefactoringCustomUI; 36 import org.netbeans.modules.refactoring.spi.ui.TreeElement; 37 import org.netbeans.modules.refactoring.spi.ui.TreeElementFactory; 38 import org.netbeans.modules.xml.nbprefuse.AnalysisViewer; 39 import org.netbeans.modules.xml.nbprefuse.View; 40 import org.netbeans.modules.xml.refactoring.DeleteRequest; 41 import org.netbeans.modules.xml.refactoring.RefactorRequest; 42 import org.netbeans.modules.refactoring.api.AbstractRefactoring; 43 import org.netbeans.modules.refactoring.api.Problem; 44 import org.netbeans.modules.refactoring.api.WhereUsedQuery; 45 import org.netbeans.modules.refactoring.spi.ui.CustomRefactoringPanel; 46 import org.netbeans.modules.xml.refactoring.ui.j.ui.RefactoringPanel; 47 import org.netbeans.modules.xml.refactoring.ui.j.ui.SafeDeletePanel; 48 import org.netbeans.modules.xml.refactoring.ui.tree.GraphHelper; 49 import org.netbeans.modules.xml.refactoring.ui.views.WhereUsedView; 50 import org.netbeans.modules.xml.xam.Nameable; 51 import org.netbeans.modules.xml.xam.NamedReferenceable; 52 import org.netbeans.modules.xml.xam.Referenceable; 53 import org.openide.util.HelpCtx; 54 import org.openide.util.NbBundle; 55 import org.openide.util.Utilities; 56 import org.openide.util.lookup.Lookups; 57 import prefuse.data.Graph; 58 59 63 public class DeleteRefactoringUI implements org.netbeans.modules.refactoring.spi.ui.RefactoringUI, RefactoringCustomUI{ 64 65 private WhereUsedQuery query; 66 private WhereUsedView view; 67 private DeleteRequest deleteRequest; 68 private CustomRefactoringPanel panel; 69 private AbstractRefactoring refactoring; 70 private NamedReferenceable target; 71 72 73 public DeleteRefactoringUI(WhereUsedView view, DeleteRequest request) { 74 this.view = view; 75 deleteRequest = request; 76 query = new WhereUsedQuery(Lookups.singleton(request.getTarget())); 77 target = request.getTarget(); 78 refactoring = new SafeDeleteRefactoring(Lookups.singleton(target)); 79 } 80 81 public DeleteRefactoringUI(WhereUsedView view, NamedReferenceable target) { 82 this(view, new DeleteRequest(target)); 83 } 84 85 public DeleteRefactoringUI(NamedReferenceable target){ 86 this.target= target; 87 refactoring = new SafeDeleteRefactoring(Lookups.singleton(target)); 88 } 89 90 93 106 public CustomRefactoringPanel getPanel(ChangeListener parent) { 107 System.out.println("Is getPanel getting called???"); 108 109 if(panel == null) 110 panel = new SafeDeletePanel(target); 111 return panel; 112 } 113 114 122 public Problem setParameters() { 123 return refactoring.checkParameters(); 125 } 126 127 134 public boolean isQuery() { 135 return false; 136 } 137 138 public boolean hasParameters() { 139 return true; 140 } 141 142 147 public AbstractRefactoring getRefactoring() { 148 return refactoring; 149 } 151 152 153 public HelpCtx getHelpCtx() { 154 return new HelpCtx(DeleteRefactoringUI.class); 155 } 156 157 162 public String getDescription() { 163 return new MessageFormat (NbBundle.getMessage(RefactoringPanel.class, "LBL_Delete")).format ( 164 new Object [] {target.getName() } 165 ); 166 167 } 168 169 public Problem checkParameters() { 170 return refactoring.fastCheckParameters(); 172 } 173 174 175 public View getView() { 176 return view; 177 } 178 179 public void setView(View view){ 180 181 this.view = WhereUsedView.class.cast(view); 182 } 183 184 185 190 public RefactorRequest getRefactorRequest() { 191 return deleteRequest; 192 193 } 194 195 196 201 public String getName() { 202 return new MessageFormat (NbBundle.getMessage(RefactoringPanel.class, "LBL_Delete")).format ( 203 new Object [] {target.getName()} 204 ); 205 } 206 207 210 212 public NamedReferenceable getTarget() { 213 return deleteRequest.getTarget(); 214 } 215 216 217 public Component getCustomComponent(Collection <RefactoringElement> elements) { 218 System.out.println("getCustomComponent called"); 219 WhereUsedView view = new WhereUsedView(target); 220 GraphHelper gh = new GraphHelper((target)); 221 222 223 ArrayList <TreeElement> nodes = new ArrayList <TreeElement>(); 224 for (RefactoringElement element: elements) { 225 TreeElement previewNode = TreeElementFactory.getTreeElement(element); 226 if(previewNode != null) 227 nodes.add(previewNode); 228 } 229 230 Graph graph = gh.loadGraph(nodes); 231 view.setGraph(graph); 232 AnalysisViewer analysisViewer = new AnalysisViewer(); 233 analysisViewer.getPanel().setMinimumSize(new Dimension (10,10)); 234 analysisViewer.getPanel().setPreferredSize(new Dimension (10,10)); 235 view.showView(analysisViewer); 236 237 return analysisViewer.getPanel(); 238 } 239 240 public Icon getCustomIcon() { 241 return new ImageIcon ( 242 Utilities.loadImage( 243 "org/netbeans/modules/refactoring/api/resources/"+ 244 "findusages.png")); 245 } 246 247 public String getCustomToolTip() { 248 return NbBundle.getMessage(WhereUsedQueryUI.class, "LBL_ShowGraph"); 249 } 250 } 251 | Popular Tags |