public void RefreshPackageView() { this.RemoveAll(); foreach (Package pack in Package.GetPackages()) { ResourceNode tn = new ResourceNode(this, pack); tn.SetImage(@"Data\package.png"); if ((Filter & ResourceType.Package) != 0) { tn.DoubleClicked += OnPackageClicked; } tn.RightClicked += OnResourceRightClicked; AddChildren(tn); } this.ExpandAll(); }
private void AddChildren(ResourceNode tn) { Folder folder = tn.Resource as Folder; if (folder != null) { foreach (Resource child in folder.GetChildren()) { ResourceNode node = null; if (child.GetType() == typeof(Folder)) { node = new ResourceNode(tn, child); node.SetImage(@"Data\folder.png"); } else if (child.GetType() == typeof(FSTexture) && ((Filter & ResourceType.Texture) != 0)) { node = new ResourceNode(tn, child); node.SetImage(@"Data\texture.png"); node.DoubleClicked += OnTexClicked; } else if (child.GetType() == typeof(BlockType) && ((Filter & ResourceType.BlockType) != 0)) { node = new ResourceNode(tn, child); node.SetImage(@"Data\blocktype.png"); node.DoubleClicked += OnBlockClicked; } else if (child.GetType() == typeof(CodeFile) && ((Filter & ResourceType.CodeFile) != 0)) { node = new ResourceNode(tn, child); CodeFile cf = child as CodeFile; if (cf.Errors.Count() > 0) { node.SetImage(@"Data\SharedCode_Error.png"); } else { node.SetImage(@"Data\SharedCode.png"); } node.DoubleClicked += OnCodeClicked; } if (node != null) { node.RightClicked += OnResourceRightClicked; AddChildren(node); } } } }