KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > ui > nodes > categorized > PrimitiveSimpleTypesNode


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-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 /*
21  * PrimitiveSimpleTypesNode.java
22  *
23  * Created on April 13, 2006, 9:49 AM
24  *
25  * To change this template, choose Tools | Template Manager
26  * and open the template in the editor.
27  */

28
29 package org.netbeans.modules.xml.schema.ui.nodes.categorized;
30
31 import java.awt.Image JavaDoc;
32 import org.openide.nodes.AbstractNode;
33 import org.openide.nodes.Children;
34 import org.openide.nodes.Node;
35 import org.openide.util.NbBundle;
36 import org.netbeans.modules.xml.schema.model.GlobalSimpleType;
37 import org.netbeans.modules.xml.schema.model.SchemaModelFactory;
38 import org.netbeans.modules.xml.schema.ui.nodes.SchemaUIContext;
39 import org.openide.filesystems.FileObject;
40 import org.openide.filesystems.Repository;
41 import org.openide.loaders.DataObject;
42 import org.openide.loaders.DataObjectNotFoundException;
43 import org.openide.util.Utilities;
44 import org.openide.util.lookup.InstanceContent;
45
46 /**
47  *
48  * @author Administrator
49  */

50 public class PrimitiveSimpleTypesNode extends AbstractNode
51 {
52     /** Creates a new instance of PrimitiveSimpleTypesNode */
53     public PrimitiveSimpleTypesNode(SchemaUIContext context)
54     {
55         super(new TypesChildren(context));
56         setIconBaseWithExtension(
57             "org/netbeans/modules/xml/schema/ui/nodes/resources/"+
58             "folder_with_elementBadge.png");
59         setName(NbBundle.getMessage(CategoryNode.class,
60                 "LBL_CategoryNode_PrimitiveSimpleTypes"));
61     }
62
63     private Node getFolderNode() {
64         FileObject fo =
65         Repository.getDefault().getDefaultFileSystem().getRoot();
66         Node n = null;
67         try {
68         DataObject dobj = DataObject.find(fo);
69         n = dobj.getNodeDelegate();
70         } catch (DataObjectNotFoundException ex) {
71         // cannot get the node for this, this shouldn't happen
72
// so just ignore
73
}
74         
75         return n;
76     }
77     
78     @Override JavaDoc
79     public Image JavaDoc getIcon(int type) {
80         Node n = getFolderNode();
81         Image JavaDoc i = super.getIcon(type);
82         if (n != null) {
83         i = n.getIcon(type);
84         }
85         return badgeImage(i);
86     }
87
88     @Override JavaDoc
89     public Image JavaDoc getOpenedIcon(int type) {
90         Node n = getFolderNode();
91         Image JavaDoc i = super.getOpenedIcon(type);
92         if (n != null) {
93         i = n.getOpenedIcon(type);
94         }
95         return badgeImage(i);
96     }
97     
98     private Image JavaDoc badgeImage(Image JavaDoc main) {
99         Image JavaDoc badgeImage = Utilities.loadImage("org/netbeans/modules/xml/schema/ui/nodes/resources/simpleType_badge.png"); // NOI18N
100
return Utilities.mergeImages(main, badgeImage, 8, 8);
101     }
102     
103     public boolean canRename()
104     {
105         return false;
106     }
107
108     public boolean canDestroy()
109     {
110         return false;
111     }
112
113     public boolean canCut()
114     {
115         return false;
116     }
117
118     public boolean canCopy()
119     {
120         return false;
121     }
122     
123     public static class TypesChildren extends Children.Keys
124     {
125         TypesChildren(SchemaUIContext context) {
126             super();
127             this.context = context;
128         }
129         protected Node[] createNodes(Object JavaDoc key)
130         {
131             if(key instanceof GlobalSimpleType)
132             {
133                 Node node = context.getFactory().createNode((GlobalSimpleType)key);
134                 return new Node[] {new TypeNode(node)};
135             }
136             assert false;
137             return new Node[]{};
138         }
139
140         protected void addNotify()
141         {
142             setKeys(SchemaModelFactory.getDefault().getPrimitiveTypesModel().
143                     getSchema().getSimpleTypes());
144         }
145         
146         private SchemaUIContext context;
147     }
148     
149     public static class TypeNode extends ReadOnlySchemaComponentNode {
150         
151         private TypeNode(Node original)
152         {
153             super(original, Children.LEAF, new InstanceContent());
154             final String JavaDoc details = NbBundle.getMessage(
155                     PrimitiveSimpleTypesNode.class,"MSG_"+getOriginal().getName());
156             setShortDescription(details);
157         }
158         
159         public String JavaDoc getHtmlDisplayName()
160         {
161             return getDefaultDisplayName();
162         }
163         
164     }
165     
166 }
167
Popular Tags