KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > tree > WSDLTreeElement


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.xml.wsdl.ui.tree;
21
22 import java.beans.BeanInfo JavaDoc;
23 import java.text.MessageFormat JavaDoc;
24 import java.util.HashMap JavaDoc;
25 import java.util.List JavaDoc;
26 import java.util.Map JavaDoc;
27 import javax.swing.Icon JavaDoc;
28 import javax.swing.ImageIcon JavaDoc;
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 /**
53  *
54  * @author Jan Becicka
55  */

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        // assert component instanceof WSDLComponent:"This TreeElement handles WSDLComponents only";
69
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 JavaDoc e){
82             e.printStackTrace();
83         }
84         
85         //TO DO if the node is null???
86
}
87     
88     public TreeElement getParent(boolean isLogical) {
89          TreeElement result = null;
90          
91          List JavaDoc<Component> aPath = usage.getPathFromRoot();
92          Map JavaDoc<Component,ComponentTreeElement> componentsInModel = new HashMap JavaDoc<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                     // the first Component in the path is a child of the file node
99
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 JavaDoc getIcon() {
119         if(node != null)
120             return new ImageIcon JavaDoc(node.getIcon(BeanInfo.ICON_COLOR_16x16));
121         else
122         {
123             return new ImageIcon JavaDoc(
124             Utilities.loadImage(
125             "org/netbeans/modules/xml/wsdl/ui/netbeans/module/resources/"+
126                 "columns_view.png"));
127         }
128         
129     }
130
131     public String JavaDoc getText(boolean isLogical) {
132         if(node != null ) {
133         String JavaDoc htmlDisplayName = node.getHtmlDisplayName();
134         String JavaDoc usageTreeNodeLabel =
135                             MessageFormat.format(
136                             NbBundle.getMessage(
137                             WSDLTreeElement.class,
138                             "LBL_Usage_Node"),
139                             new Object JavaDoc[] {
140                         node.getName(),
141                         node.getShortDescription(), // comp type
142
htmlDisplayName==null?"":htmlDisplayName
143                     });
144         return usageTreeNodeLabel;
145         
146         } else
147             return "Temp Name";
148        
149     }
150
151     public Object JavaDoc getUserObject() {
152        return element;
153     }
154 }
155
Popular Tags