KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > apisupport > beanbrowser > ContainerKids


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.apisupport.beanbrowser;
21
22 import java.awt.Container JavaDoc;
23 import java.awt.event.ContainerEvent JavaDoc;
24 import java.awt.event.ContainerListener JavaDoc;
25 import java.util.Collections JavaDoc;
26 import org.openide.nodes.Children;
27 import org.openide.nodes.Node;
28
29 /** Children list of an AWT Container. */
30 public class ContainerKids extends Children.Keys {
31
32     private Container JavaDoc container;
33     private ContainerListener JavaDoc containerListener = null;
34
35     public ContainerKids(Container JavaDoc container) {
36         this.container = container;
37     }
38
39     protected void addNotify() {
40         updateKeys();
41         if (containerListener == null) {
42             containerListener = new ContainerListener JavaDoc() {
43                 public void componentAdded(ContainerEvent JavaDoc ev) {
44                     updateKeys();
45                 }
46                 public void componentRemoved(ContainerEvent JavaDoc ev) {
47                     updateKeys();
48                 }
49             };
50             container.addContainerListener(containerListener);
51         }
52     }
53
54     protected void removeNotify() {
55         if (containerListener != null) {
56             container.removeContainerListener(containerListener);
57             containerListener = null;
58         }
59         setKeys(Collections.EMPTY_SET);
60     }
61     
62     private void updateKeys() {
63         setKeys(container.getComponents());
64     }
65     
66     protected Node[] createNodes(Object JavaDoc key) {
67         return new Node[] { PropSetKids.makeObjectNode(key) };
68     }
69     
70 }
71
Popular Tags