KickJava   Java API By Example, From Geeks To Geeks.

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


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.util.ArrayList JavaDoc;
23 import java.util.Collection JavaDoc;
24 import java.util.Collections JavaDoc;
25 import java.util.List JavaDoc;
26
27 import org.netbeans.modules.xml.schema.model.GlobalComplexType;
28 import org.netbeans.modules.xml.schema.model.GlobalElement;
29 import org.netbeans.modules.xml.schema.model.GlobalSimpleType;
30 import org.netbeans.modules.xml.schema.model.Schema;
31 import org.netbeans.modules.xml.schema.model.SchemaComponent;
32 import org.netbeans.modules.xml.schema.model.SchemaModelReference;
33 import org.netbeans.modules.xml.schema.ui.nodes.categorized.CategorizedSchemaNodeFactory;
34 import org.openide.nodes.FilterNode;
35 import org.openide.nodes.Node;
36 import org.openide.util.Lookup;
37 import org.openide.util.NbBundle;
38
39
40
41 /**
42  * @author radval
43  *
44  * To change the template for this generated type comment go to
45  * Window - Preferences - Java - Code Generation - Code and Comments
46  */

47 public class XSDTypesNode extends FilterNode {
48    
49     private Collection JavaDoc mSchemas;
50     
51     
52     public XSDTypesNode(Node typesNode, Collection JavaDoc schemas) {
53         super(typesNode);
54         mSchemas = schemas;
55         this.setDisplayName(NbBundle.getMessage(XSDTypesNode.class, "INLINE_SCHEMATYPE_NAME"));
56         this.setChildren(new XSDTypesChildren());
57     }
58     
59     public XSDTypesNode(Node typesNode, Collection JavaDoc schemas, List JavaDoc<Class JavaDoc<? extends SchemaComponent>> filters) {
60         super(typesNode);
61         mSchemas = schemas;
62         this.setDisplayName(NbBundle.getMessage(XSDTypesNode.class, "INLINE_SCHEMATYPE_NAME"));
63         this.setChildren(new XSDTypesChildren(filters));
64     }
65
66     public class XSDTypesChildren extends Children.Keys {
67         private List JavaDoc<Class JavaDoc<? extends SchemaComponent>> filters;
68         public XSDTypesChildren(List JavaDoc<Class JavaDoc<? extends SchemaComponent>> filters) {
69             this.filters = filters;
70         }
71         
72         public XSDTypesChildren() {
73         }
74         
75         @Override JavaDoc
76         protected Node[] createNodes(Object JavaDoc key) {
77             if (filters == null) {
78                 filters = new ArrayList JavaDoc<Class JavaDoc<? extends SchemaComponent>>();
79                 filters.add(GlobalSimpleType.class);
80                 filters.add(GlobalComplexType.class);
81                 filters.add(GlobalElement.class);
82                 filters.add(SchemaModelReference.class);
83             }
84             CategorizedSchemaNodeFactory factory = new CategorizedSchemaNodeFactory(
85                     ((Schema)key).getModel(), filters, Lookup.EMPTY);
86             Node node = factory.createNode((Schema) key);
87             return new Node[] { node };
88
89         }
90         
91         
92         @Override JavaDoc
93         protected void addNotify() {
94             resetKeys();
95         }
96         
97         @Override JavaDoc
98         protected void removeNotify() {
99             this.setKeys(Collections.EMPTY_SET);
100             
101         }
102         
103         private void resetKeys() {
104                 this.setKeys(mSchemas);
105         }
106         
107         @Override JavaDoc
108         public boolean remove (final Node[] arr) {
109             //HACK: we want to reset the keys
110
//and also want to call super.remove
111
//so that tree gets refreshed.
112
//we need to add resetkeys
113
//because when nodes are created from
114
//persisted bpel info
115
//super.remove() does not delete a node.(it is not in nodes collection)
116
//supper.remove() removes node when user create
117
//a new node for the first time. So we need both here.
118
resetKeys();
119             return super.remove(arr);
120         }
121     }
122
123 }
124
Popular Tags