예제 #1
0
        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));
        }
예제 #2
0
        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);
        }