1 19 20 package org.netbeans.api.nodes2looks; 21 22 import java.util.Collections ; 23 import java.util.List ; 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 37 final class LookChildren extends Children.Keys { 38 39 41 void refreshChildren( boolean brutal ) { 42 if (brutal) { 43 setKeys (Collections.EMPTY_LIST); 44 } 45 46 MUTEX.postWriteRequest(new Runnable () { 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 key ) { 62 if (key == null) return new Node[0]; 63 64 Node n = getNode (); 65 if (! (n instanceof LookNode)) { 66 throw new InternalError (); 67 } 68 69 LookNode ln = (LookNode)n; 70 71 72 LookSelector s = ln.getLookSelectorForChildren(); 73 74 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 t ) { 82 t.printStackTrace(); 83 return new Node[] {}; 84 } 85 86 } 87 88 89 91 92 private List getKeys() { 93 List keys = ((LookNode)getNode ()).getChildObjects (); 94 return keys == null ? Collections.EMPTY_LIST : keys; 95 } 96 97 98 } 99 | Popular Tags |