internal static IEnumerable <SharpTreeNode> LoadChildrenForFolder(PackageFolder root) { foreach (var folder in root.Folders.OrderBy(f => f.Name)) { string newName = folder.Name; var subfolder = folder; while (subfolder.Folders.Count == 1 && subfolder.Entries.Count == 0) { // special case: a folder that only contains a single sub-folder subfolder = subfolder.Folders[0]; newName = $"{newName}/{subfolder.Name}"; } yield return(new PackageFolderTreeNode(subfolder, newName)); } foreach (var entry in root.Entries.OrderBy(e => e.Name)) { if (entry.Name.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) { var asm = root.ResolveFileName(entry.Name); if (asm != null) { yield return(new AssemblyTreeNode(asm, entry)); } else { yield return(ResourceTreeNode.Create(entry)); } } else { yield return(ResourceTreeNode.Create(entry)); } } }
protected override void LoadChildren() { foreach (Resource r in module.Resources.OrderBy(m => m.Name)) { this.Children.Add(ResourceTreeNode.Create(r)); } }
protected override void LoadChildren() { foreach (Resource r in module.Resources.OrderBy(m => m.Name, NaturalStringComparer.Instance)) { this.Children.Add(ResourceTreeNode.Create(r)); } }