KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > wsdl > nodes > BuiltInTypeFolderNode


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 package org.netbeans.modules.xml.wsdl.ui.wsdl.nodes;
21
22 import java.awt.Image JavaDoc;
23 import java.util.ArrayList JavaDoc;
24 import java.util.Collections JavaDoc;
25 import java.util.List JavaDoc;
26
27 import org.netbeans.modules.xml.schema.model.GlobalSimpleType;
28 import org.netbeans.modules.xml.schema.model.SchemaComponent;
29 import org.netbeans.modules.xml.schema.model.SchemaModel;
30 import org.netbeans.modules.xml.schema.model.SchemaModelFactory;
31 import org.netbeans.modules.xml.schema.ui.nodes.categorized.CategorizedSchemaNodeFactory;
32 import org.netbeans.modules.xml.schema.ui.nodes.categorized.PrimitiveSimpleType;
33 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.FolderNode;
34 import org.openide.nodes.AbstractNode;
35 import org.openide.nodes.Children;
36 import org.openide.nodes.FilterNode;
37 import org.openide.nodes.Node;
38 import org.openide.util.Lookup;
39 import org.openide.util.NbBundle;
40 import org.openide.util.Utilities;
41
42
43
44 /**
45  *
46  * @author radval
47  *
48  */

49 public class BuiltInTypeFolderNode extends AbstractNode {
50     
51     private static final Image JavaDoc ICON = Utilities.loadImage
52             ("org/netbeans/modules/xml/wsdl/ui/view/resources/simpleType_badge.png");
53     
54     
55     public BuiltInTypeFolderNode() {
56         super(new BuiltInTypeNodeChildren(SchemaModelFactory.getDefault().getPrimitiveTypesModel()));
57         this.setName(NbBundle.getMessage(BuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME"));
58         this.setDisplayName(NbBundle.getMessage(BuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME"));
59         this.setShortDescription(NbBundle.getMessage(BuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME"));
60         
61     }
62     
63     @Override JavaDoc
64     public Image JavaDoc getIcon(int type) {
65         Image JavaDoc icon = FolderNode.FolderIcon.getClosedIcon();
66         return Utilities.mergeImages(icon, ICON, 8, 8);
67     }
68     
69     @Override JavaDoc
70     public Image JavaDoc getOpenedIcon(int type) {
71         Image JavaDoc icon = FolderNode.FolderIcon.getOpenedIcon();
72         return Utilities.mergeImages(icon, ICON, 8, 8);
73     }
74     
75     public static class BuiltInTypeNodeChildren extends Children.Keys {
76         SchemaModel model = null;
77         
78         BuiltInTypeNodeChildren(SchemaModel model) {
79             this.model = model;
80         }
81         
82         @Override JavaDoc
83         protected Node[] createNodes(Object JavaDoc key) {
84             List JavaDoc<Class JavaDoc<? extends SchemaComponent>> filters = new ArrayList JavaDoc<Class JavaDoc<? extends SchemaComponent>>();
85             filters.add(PrimitiveSimpleType.class);
86             CategorizedSchemaNodeFactory factory = new CategorizedSchemaNodeFactory(
87                     model, filters, Lookup.EMPTY);
88             Node node = factory.createNode((GlobalSimpleType) key);
89             return new Node[] { new ChildLessNode(node) };
90         }
91         
92         
93         @Override JavaDoc
94         protected void addNotify() {
95             resetKeys();
96         }
97         
98         @Override JavaDoc
99         protected void removeNotify() {
100             this.setKeys(Collections.EMPTY_SET);
101             
102         }
103         
104         @SuppressWarnings JavaDoc("unchecked")
105         private void resetKeys() {
106             ArrayList JavaDoc keys = new ArrayList JavaDoc();
107             keys.addAll(model.getSchema().getSimpleTypes());
108             this.setKeys(keys);
109         }
110         
111         @Override JavaDoc
112         public boolean remove(final Node[] arr) {
113             return super.remove(arr);
114         }
115     }
116     
117     private static class ChildLessNode extends FilterNode {
118
119         public ChildLessNode(Node node) {
120             super(node, Children.LEAF);
121         }
122     }
123 }
124
125
Popular Tags