KickJava   Java API By Example, From Geeks To Geeks.

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


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.schema.ui.nodes.categorized;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.List JavaDoc;
24 import org.netbeans.modules.xml.schema.model.SchemaComponent;
25 import org.netbeans.modules.xml.schema.model.SchemaComponentReference;
26 import org.netbeans.modules.xml.schema.ui.nodes.ReadOnlyCookie;
27 import org.netbeans.modules.xml.schema.ui.nodes.SchemaUIContext;
28 import org.netbeans.modules.xml.xam.ui.customizer.CustomizerProvider;
29 import org.openide.nodes.Node;
30
31 /**
32  * Subclass of CategorizedChildren that does not attempt to arrange the
33  * order of its children according to their type, as that would be quite
34  * wrong for a sequence component.
35  *
36  * @author Nathan Fiedler
37  */

38 public class SequenceChildren<C extends SchemaComponent>
39         extends CategorizedChildren<C> {
40
41     /**
42      * Creates a new instance of SequenceChildren.
43      *
44      * @param context schema context.
45      * @param reference schema component.
46      */

47     public SequenceChildren(SchemaUIContext context,
48             SchemaComponentReference<C> reference) {
49         super(context,reference);
50     }
51
52     protected List JavaDoc<Node> createKeys() {
53         C parentComponent = getReference().get();
54         List JavaDoc<Node> keys = new ArrayList JavaDoc<Node>();
55
56         CustomizerProvider provider = (CustomizerProvider) getNode().
57                 getLookup().lookup(CustomizerProvider.class);
58         ReadOnlyCookie roc = (ReadOnlyCookie) getContext().getLookup().lookup(
59                 ReadOnlyCookie.class);
60         if (provider != null && (roc == null || !roc.isReadOnly())) {
61             keys.add(new DetailsNode(getContext(),provider));
62         }
63         List JavaDoc<SchemaComponent> children = parentComponent.getChildren();
64
65         // Create a node for each of the children.
66
for (SchemaComponent child : children) {
67             Node node = getContext().getFactory().createNode(child);
68             keys.add(node);
69         }
70         return keys;
71     }
72 }
73
Popular Tags