Exemplo n.º 1
0
        internal static void AddLeaf(Node[] nodes, Type type)
        {
            var commands = new List <Command>();

            foreach (var node in nodes)
            {
                var requiredTypes = CoreUtil.GetRequiredTypes(type);
                foreach (var requiredType in requiredTypes)
                {
                    if (node.GetLeaf(requiredType) == null)
                    {
                        commands.Add(new NodeAddLeafCommand(node, (Leaf)Activator.CreateInstance(requiredType)));
                    }
                }
                commands.Add(new NodeAddLeafCommand(node, (Leaf)Activator.CreateInstance(type)));
            }
            Command.Execute(new CombinedCommand(commands.ToArray()));
        }