1 19 20 package org.netbeans.modules.xml.refactoring.ui.j.spi.ui; 21 22 import java.awt.BorderLayout ; 23 import java.awt.Component ; 24 import java.awt.Dimension ; 25 import java.beans.BeanInfo ; 26 import java.text.MessageFormat ; 27 import java.util.ArrayList ; 28 import java.util.Collection ; 29 import java.util.HashMap ; 30 import java.util.Map ; 31 import javax.swing.Icon ; 32 import javax.swing.ImageIcon ; 33 import javax.swing.JButton ; 34 import javax.swing.JDialog ; 35 import javax.swing.JFrame ; 36 import javax.swing.JPanel ; 37 import javax.swing.event.ChangeListener ; 38 import org.netbeans.modules.refactoring.api.RefactoringElement; 39 import org.netbeans.modules.refactoring.spi.ui.RefactoringCustomUI; 40 import org.netbeans.modules.refactoring.spi.ui.TreeElement; 41 import org.netbeans.modules.refactoring.spi.ui.TreeElementFactory; 42 import org.netbeans.modules.refactoring.spi.ui.UI; 43 import org.netbeans.modules.xml.nbprefuse.AnalysisViewer; 44 import org.netbeans.modules.xml.nbprefuse.View; 45 import org.netbeans.modules.xml.nbprefuse.util.GraphUtilities; 46 import org.netbeans.modules.xml.refactoring.FindUsageResult; 47 import org.netbeans.modules.xml.refactoring.RefactorRequest; 48 import org.netbeans.modules.refactoring.api.AbstractRefactoring; 49 import org.netbeans.modules.refactoring.spi.ui.CustomRefactoringPanel; 50 import org.netbeans.modules.refactoring.api.Problem; 51 import org.netbeans.modules.refactoring.api.WhereUsedQuery; 52 import org.netbeans.modules.xml.refactoring.RefactoringManager; 53 import org.netbeans.modules.xml.refactoring.ui.j.ui.RefactoringPanel; 54 import org.netbeans.modules.xml.refactoring.ui.tree.GraphHelper; 55 import org.netbeans.modules.xml.refactoring.ui.util.AnalysisUtilities; 56 import org.netbeans.modules.xml.refactoring.ui.views.WhereUsedView; 57 import org.netbeans.modules.xml.xam.Named; 58 import org.netbeans.modules.xml.xam.Referenceable; 59 import org.openide.nodes.Node; 60 import org.openide.util.HelpCtx; 61 import org.openide.util.NbBundle; 62 import org.openide.util.Utilities; 63 import org.openide.util.lookup.Lookups; 64 import prefuse.data.Graph; 65 66 70 public class WhereUsedQueryUI implements org.netbeans.modules.refactoring.spi.ui.RefactoringUI, RefactoringCustomUI { 71 72 private String name = ""; private WhereUsedQuery query; 74 private Referenceable ref; 75 private WhereUsedView view; 76 77 78 public WhereUsedQueryUI(WhereUsedView view, 79 Referenceable ref) { 80 this.view = view; 81 this.ref = ref; 82 name = AnalysisUtilities.getName(ref); 83 query = new WhereUsedQuery(Lookups.singleton(ref)); 84 } 85 86 89 102 public CustomRefactoringPanel getPanel(ChangeListener parent) { 103 return new WhereUsedPanel(ref, parent); 106 } 107 108 116 public Problem setParameters() { 117 return null; 118 } 119 120 127 public boolean isQuery() { 128 return true; 129 } 130 131 public boolean hasParameters() { 132 return false; 133 } 134 135 140 public AbstractRefactoring getRefactoring() { 141 return query; 142 } 143 144 149 150 public String getName() { 151 return new MessageFormat (NbBundle.getMessage(RefactoringPanel.class, "LBL_WhereUsed")).format ( 152 new Object [] {name} 153 ); 154 } 155 156 public HelpCtx getHelpCtx() { 157 return new HelpCtx(WhereUsedQueryUI.class); 158 } 159 160 165 public String getDescription() { 166 return new MessageFormat (NbBundle.getMessage(RefactoringPanel.class, "DSC_WhereUsed")).format ( 167 new Object [] {name} 168 ); 169 170 } 171 172 public Problem checkParameters() { 173 return null; 174 } 175 176 public View getView() { 177 return view; 178 } 179 180 public Referenceable getTarget() { 181 return ref; 182 } 183 184 public RefactorRequest getRefactorRequest() { 185 return null; 186 } 187 188 191 public void setView(View view) { 192 this.view = WhereUsedView.class.cast(view); 193 } 194 195 198 200 public Component getCustomComponent(Collection <RefactoringElement> elements) { 201 System.out.println("getCustomComponent called"); 202 Referenceable ref = view.getQueryComponent(); 203 GraphHelper gh = new GraphHelper(ref); 204 205 ArrayList <TreeElement> nodes = new ArrayList <TreeElement>(); 207 for (RefactoringElement element: elements) { 209 TreeElement previewNode = TreeElementFactory.getTreeElement(element); 210 if(previewNode != null) 211 nodes.add(previewNode); 212 } 213 214 Graph graph = gh.loadGraph(nodes); 215 view.setGraph(graph); 216 AnalysisViewer analysisViewer = new AnalysisViewer(); 217 analysisViewer.getPanel().setMinimumSize(new Dimension (10,10)); 218 analysisViewer.getPanel().setPreferredSize(new Dimension (10,10)); 219 view.showView(analysisViewer); 220 221 return analysisViewer.getPanel(); 222 223 224 237 } 238 239 public Icon getCustomIcon() { 240 return new ImageIcon ( 241 Utilities.loadImage( 242 "org/netbeans/modules/refactoring/api/resources/"+ 243 "findusages.png")); 244 } 245 246 public String getCustomToolTip() { 247 return NbBundle.getMessage(WhereUsedQueryUI.class, "LBL_ShowGraph"); 248 } 249 250 } 251 | Popular Tags |