예제 #1
0
        public PluginTreeNode(Type type)
        {
            _type = type;
            _instance = (IPlugin)Activator.CreateInstance(_type);

            IPluginData[] data = _instance.GetData();
            foreach (IPluginData item in data)
            {
                if (item.Children == null)
                {
                    Nodes.Add(new LeafTreeNode(item));
                }
                else
                {
                    int i = Nodes.Add(new BranchTreeNode(item));
                    var newNode = Nodes[i];
                    foreach (IPluginData childItem in item.Children)
                    {
                        if (childItem.Children == null)
                        {
                            newNode.Nodes.Add(new LeafTreeNode(childItem));
                        }
                        else
                        {
                            newNode.Nodes.Add(new BranchTreeNode(childItem));
                        }
                    }
                }
            }

            Text = DisplayName;
        }