1 19 20 28 29 package org.netbeans.modules.xml.schema.ui.nodes.categorized; 30 31 import java.util.ArrayList ; 32 import java.util.Collection ; 33 import java.util.Collections ; 34 import org.openide.nodes.FilterNode; 35 import org.openide.nodes.Node; 36 37 41 public class DummySchemaNode extends FilterNode implements Node.Cookie 42 { 43 44 public DummySchemaNode(Node original) 45 { 46 this(original, new Children(original)); 47 } 48 49 private DummySchemaNode(Node original, org.openide.nodes.Children children) 50 { 51 super(original, children); 52 } 53 54 private static class Children extends FilterNode.Children 55 { 56 public Children(Node original) 57 { 58 super(original); 59 } 60 61 @Override 62 protected void removeNotify() 63 { 64 setKeys((Collection )Collections.emptyList()); 65 } 66 67 @Override 68 protected void addNotify() 69 { 70 setKeys(createKeys()); 71 } 72 73 private ArrayList <Node> createKeys() 74 { 75 ArrayList <Node> keys = new ArrayList <Node>(); 76 keys.add(new DummyInnerSchemaNode(original)); 77 Node[] children = original.getChildren().getNodes(); 78 for(Node child:children) 79 { 80 if(child.getCookie(CategoryNode.class)!=null) 81 keys.add(child); 82 } 83 return keys; 84 } 85 86 87 } 88 public static class DummyInnerSchemaNode extends DummySchemaNode 89 { 90 91 public DummyInnerSchemaNode(final Node original) 92 { 93 super(original, new FilterNode.Children(original) 94 { 95 @Override 96 protected Node[] createNodes(Node n) 97 { 98 if (n.getCookie(CategoryNode.class) != null) 99 return new Node[]{}; 100 return super.createNodes(n); 101 } 102 }); 103 } 104 } 105 } 106 | Popular Tags |