1 19 20 package org.netbeans.modules.apisupport.beanbrowser; 21 22 import java.beans.IntrospectionException ; 23 import java.beans.PropertyChangeEvent ; 24 import java.beans.PropertyChangeListener ; 25 import java.util.Collections ; 26 import org.openide.nodes.AbstractNode; 27 import org.openide.nodes.Children; 28 import org.openide.nodes.Node; 29 import org.openide.windows.TopComponent; 30 31 35 class TopComponentsNode extends AbstractNode { 36 37 public TopComponentsNode(TopComponent.Registry r) { 38 super(new TopComponentsChildren(r)); 39 setName("TopComponentsNode"); 40 setDisplayName("Open Windows"); 41 setIconBaseWithExtension("org/netbeans/modules/apisupport/beanbrowser/BeanBrowserIcon.gif"); 42 } 43 44 private static final class TopComponentsChildren extends Children.Keys implements PropertyChangeListener { 45 46 private final TopComponent.Registry r; 47 48 TopComponentsChildren(TopComponent.Registry r) { 49 this.r = r; 50 } 51 52 protected void addNotify() { 53 super.addNotify(); 54 setKeys(r.getOpened()); 55 r.addPropertyChangeListener(this); 56 } 57 58 protected void removeNotify() { 59 r.removePropertyChangeListener(this); 60 setKeys(Collections.EMPTY_SET); 61 super.removeNotify(); 62 } 63 64 protected Node[] createNodes(Object key) { 65 TopComponent c = (TopComponent) key; 66 Node n; 67 try { 68 n = Wrapper.make(new RefinedBeanNode(c)); 69 } catch (IntrospectionException ex) { 70 ex.printStackTrace(); 71 return null; 72 } 73 n.setName(c.getName()); 74 n.setDisplayName(c.getDisplayName()); 75 n.setShortDescription(c.toString()); 76 return new Node[] {n}; 77 } 78 79 public void propertyChange(PropertyChangeEvent evt) { 80 setKeys(r.getOpened()); 81 } 82 83 } 84 85 } 86 | Popular Tags |