public NodeInfoCollection GetChildren(NodeInfo root) { Trace.WriteLineIf(info.Enabled, "GroupingNodeFinder.GetChildren"); NodeInfoCollection collection = null; switch (root.NodeType) { case NodeTypes.Type: GroupChildNodes(root); collection = new NodeInfoCollection(); collection.AddRange((NodeInfoCollection)nodes[""]); AddGroup(nestedClasses, collection, root); AddGroup(baseNode, collection, root); AddGroup(interfacesNode, collection, root); AddGroup(constructorsNode, collection, root); AddGroup(methodsNode, collection, root); AddGroup(fieldsNode, collection, root); AddGroup(propertiesNode, collection, root); AddGroup(eventsNode, collection, root); return(collection); case NodeTypes.Other: if (root.Description is GroupingInfo) { Trace.WriteLineIf(info.Enabled, "Found GroupingInfo"); GroupingInfo g = (GroupingInfo)root.Description; collection = (NodeInfoCollection)nodes[g.Group]; return(collection); } break; } return(finder.GetChildren(root)); }
public NodeCollection GetChildren() { NodeCollection children = new NodeCollection(); NodeInfoCollection nic = finder.GetChildren(nodeInfo); // foreach (NodeInfo o in finder.GetChildren (nodeInfo)) { foreach (NodeInfo o in nic) { Node n = (Node)this.Clone(); n.NodeInfo = o; children.Add(n); } return(children); }