1 19 20 package org.netbeans.modules.xml.wsdl.ui.tree; 21 22 import java.beans.BeanInfo ; 23 import java.text.MessageFormat ; 24 import java.util.HashMap ; 25 import java.util.List ; 26 import java.util.Map ; 27 import javax.swing.Icon ; 28 import javax.swing.ImageIcon ; 29 30 import org.netbeans.modules.refactoring.api.RefactoringElement; 31 import org.netbeans.modules.refactoring.spi.ui.TreeElementFactory; 32 import org.netbeans.modules.refactoring.spi.ui.*; 33 import org.netbeans.modules.xml.refactoring.Usage; 34 import org.netbeans.modules.xml.refactoring.ui.readers.WhereUsedReader; 35 import org.netbeans.modules.xml.refactoring.ui.util.AnalysisUtilities; 36 import org.netbeans.modules.xml.wsdl.model.WSDLComponent; 37 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 38 import org.netbeans.modules.xml.wsdl.ui.netbeans.module.WSDLDataObject; 39 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.NodesFactory; 40 import org.netbeans.modules.xml.xam.Component; 41 import org.netbeans.modules.xml.xam.Model; 42 import org.netbeans.modules.xml.xam.ModelSource; 43 import org.netbeans.modules.xml.xam.Named; 44 import org.netbeans.modules.xml.xam.Referenceable; 45 import org.openide.filesystems.FileObject; 46 import org.openide.loaders.DataObject; 47 import org.openide.nodes.Node; 48 import org.openide.util.NbBundle; 49 import org.openide.util.Utilities; 50 import org.openide.util.lookup.Lookups; 51 52 56 public class WSDLTreeElement implements TreeElement { 57 58 RefactoringElement element; 59 Usage usage; 60 Node node = null; 61 62 63 WSDLTreeElement(RefactoringElement element) { 64 this.element = element; 65 this.usage = (Usage)element.getComposite(); 66 Component component = usage.getComponent(); 67 68 try { 70 Model model = component.getModel(); 71 if(model instanceof WSDLModel) { 72 ModelSource ms = model.getModelSource(); 73 FileObject fo = (FileObject) ms.getLookup().lookup(FileObject.class); 74 if(fo != null) { 75 DataObject dObj = DataObject.find(fo); 76 if(dObj != null && dObj instanceof WSDLDataObject) { 77 node = NodesFactory.getInstance().create(component); 78 } 79 } 80 } 81 }catch (Exception e){ 82 e.printStackTrace(); 83 } 84 85 } 87 88 public TreeElement getParent(boolean isLogical) { 89 TreeElement result = null; 90 91 List <Component> aPath = usage.getPathFromRoot(); 92 Map <Component,ComponentTreeElement> componentsInModel = new HashMap <Component,ComponentTreeElement>(); 93 for (int i = 0; i< aPath.size()-1; i++) { 94 Component comp = aPath.get(i); 95 ComponentTreeElement compElement = new ComponentTreeElement(comp); 96 componentsInModel.put(comp, compElement); 97 if (i==0){ 98 compElement.setParent(usage.getContainer().getFileObject()); 100 } else { 101 ComponentTreeElement parentNode = null; 102 Component parent = aPath.get(i-1); 103 parentNode = componentsInModel.get(Component.class.cast(parent)); 104 assert parentNode != null:"The relevantPath is invalid"; 105 compElement.setParent(parentNode); 106 } 107 if(i == aPath.size()-2); { 108 result=compElement; 109 } 110 111 } 112 113 return result; 114 } 115 116 117 118 public Icon getIcon() { 119 if(node != null) 120 return new ImageIcon (node.getIcon(BeanInfo.ICON_COLOR_16x16)); 121 else 122 { 123 return new ImageIcon ( 124 Utilities.loadImage( 125 "org/netbeans/modules/xml/wsdl/ui/netbeans/module/resources/"+ 126 "columns_view.png")); 127 } 128 129 } 130 131 public String getText(boolean isLogical) { 132 if(node != null ) { 133 String htmlDisplayName = node.getHtmlDisplayName(); 134 String usageTreeNodeLabel = 135 MessageFormat.format( 136 NbBundle.getMessage( 137 WSDLTreeElement.class, 138 "LBL_Usage_Node"), 139 new Object [] { 140 node.getName(), 141 node.getShortDescription(), htmlDisplayName==null?"":htmlDisplayName 143 }); 144 return usageTreeNodeLabel; 145 146 } else 147 return "Temp Name"; 148 149 } 150 151 public Object getUserObject() { 152 return element; 153 } 154 } 155 | Popular Tags |