KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > api > nodes2looks > LookChildren


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.api.nodes2looks;
21
22 import java.util.Collections JavaDoc;
23 import java.util.List JavaDoc;
24 import org.openide.nodes.Children;
25 import org.openide.nodes.Node;
26 import org.netbeans.spi.looks.LookSelector;
27 import org.netbeans.spi.looks.Look;
28
29 /** <B>WARNING</B> - This API is not finished and is subject to change<BR>
30  * Please don't use this API for other purposes than testing.
31  * <P>
32  * Temporary implementation of Children of a LookNode. The class contains
33  * only code wich is necessary for testing looks and may be extended later.
34  *
35  * @author Petr Hrebejk
36  */

37 final class LookChildren extends Children.Keys {
38
39     /** @param brutal needs clean
40      */

41     void refreshChildren( boolean brutal ) {
42         if (brutal) {
43             setKeys (Collections.EMPTY_LIST);
44         }
45         
46         MUTEX.postWriteRequest(new Runnable JavaDoc() {
47             public void run() {
48                 setKeys( getKeys() );
49             }
50         });
51     }
52     
53     protected void addNotify() {
54         setKeys( getKeys () );
55     }
56     
57     protected void removeNotify() {
58         setKeys( Collections.EMPTY_LIST );
59     }
60     
61     protected Node[] createNodes( Object JavaDoc key ) {
62         if (key == null) return new Node[0];
63         
64         Node n = getNode ();
65         if (! (n instanceof LookNode)) {
66             throw new InternalError JavaDoc();
67         }
68
69         LookNode ln = (LookNode)n;
70                 
71         
72         LookSelector s = ln.getLookSelectorForChildren();
73                 
74         // Find look for the represented object
75
Look l = ln.getCache().find ( ln, key );
76         
77         try {
78             LookNode node = new LookNode( key, l, s, ln.getCache() );
79             return new Node[] { node };
80         }
81         catch ( Throwable JavaDoc t ) {
82             t.printStackTrace();
83             return new Node[] {};
84         }
85                 
86     }
87     
88     
89     // Private methods ---------------------------------------------------------
90

91     
92     private List JavaDoc getKeys() {
93         List JavaDoc keys = ((LookNode)getNode ()).getChildObjects ();
94         return keys == null ? Collections.EMPTY_LIST : keys;
95     }
96     
97         
98 }
99
Popular Tags