Ejemplo n.º 1
0
 public DirEntryNode(VirtualDirectory nodeDir)
     : base(nodeDir)
 {
     foreach (VirtualDirectory dir in nodeDir.Subdirectories)
     {
         Nodes.Add(new DirEntryNode(dir));
     }
     foreach (PackedFile file in nodeDir.Files)
     {
         PackEntryNode node = new PackedFileNode(file);
         Nodes.Add(node);
         node.ChangeColor();
     }
     nodeDir.DirectoryAdded += InsertNew;
     nodeDir.FileAdded      += InsertNew;
     nodeDir.FileRemoved    += RemoveEntry;
 }
Ejemplo n.º 2
0
        private void InsertNew(PackEntry entry)
        {
            PackEntryNode node = null;

            if (entry is PackedFile)
            {
                node = new PackedFileNode(entry as PackedFile);
            }
            else
            {
                node = new DirEntryNode(entry as VirtualDirectory);
            }
            node.Added = true;
            int index = 0;
            List <PackEntry> entries = (Tag as VirtualDirectory).Entries;

            for (index = 0; index < entries.Count; index++)
            {
                if (entries[index] == entry)
                {
                    break;
                }
            }
            Nodes.Insert(index, node);
            node.ChangeColor();

            ChangeColor();
            PackEntryNode parent = Parent as PackEntryNode;

            while (parent != null)
            {
                parent.ChangeColor();
                parent = parent.Parent as PackEntryNode;
            }

            Expand();
        }