// Creates a deep copy public static ProgramFolder Clone(IProgramFolder origin) { var p = new ProgramFolder(); p.name = origin.Name; p.folders = origin.Folders.Select(Clone).ToArray(); p.programs = origin.Programs.Select(Program.Clone).ToArray(); return(p); }
public static StoredProgramFolder Create(Stream stream, IProgramFolder source) { var result = new StoredProgramFolder(); result.Create(stream); stream.WriteString(source.Name); var programs = source.Programs.ToArray(); var folders = source.Folders.ToArray(); var programData = StreamArray <StoredProgram> .Create(stream, programs.Length); var folderData = StreamArray <StoredProgramFolder> .Create(stream, folders.Length); programData.Value = programs.Select(p => StoredProgram.Create(stream, p)).ToArray(); folderData.Value = folders.Select(p => StoredProgramFolder.Create(stream, p)).ToArray(); return(result); }
void AddNodes(IProgramFolder folder, TreeNodeCollection nodes) { foreach (var program in folder.Programs) { var n = nodes.Add(program.Name); n.ImageIndex = 1; n.SelectedImageIndex = 1; n.Tag = program; n.Nodes.Add("Dummy"); } foreach (var f in folder.Folders) { var n = nodes.Add(f.Name); n.ImageIndex = 0; n.SelectedImageIndex = 0; n.Tag = f; n.Nodes.Add("Dummy"); } }