public static void RefreshTreeView() { RootNode.Items.Clear(); var projectDirectory = Path.GetDirectoryName(ProjectPath); var vaultService = new VaultService(); var userVaultItem = new TreeViewItem(); userVaultItem.Header = "User Vault"; userVaultItem.MouseDoubleClick += (sender, args) => { OpenFileService.OpenFile(vaultService.GetUserVaultPath()); }; RootNode.Items.Add(userVaultItem); RecursivelyBuildFolderTree(RootNode.Items, projectDirectory); }
private static void RecursivelyBuildFolderTree(ItemCollection collection, string path) { var directoryInfo = new DirectoryInfo(path); var directories = directoryInfo.GetDirectories(); foreach (var directory in directories) { var directoryItem = new TreeViewItem(); directoryItem.Header = directory.Name; AddCreateSnippetToTreeViewItem(directoryItem, directory.FullName); AddCreateListToTreeViewItem(directoryItem, directory.FullName); AddCreateFolderToTreeViewItem(directoryItem, directory.FullName); collection.Add(directoryItem); RecursivelyBuildFolderTree(directoryItem.Items, directory.FullName); } var powershellScriptFiles = directoryInfo.GetFiles("*.ps1"); foreach (var file in powershellScriptFiles) { var newItem = new TreeViewItem(); newItem.Header = file.Name; newItem.MouseDoubleClick += (sender, args) => { OpenFileService.OpenFile(file.FullName); }; AddDeleteToTreeViewItem(newItem, file.FullName); collection.Add(newItem); } var poshToolbeltSnippetFiles = directoryInfo.GetFiles("*.ptsnip"); foreach (var file in poshToolbeltSnippetFiles) { var newItem = new TreeViewItem(); newItem.Header = file.Name; newItem.MouseDoubleClick += (sender, args) => { OpenFileService.OpenFile(file.FullName); }; AddDeleteToTreeViewItem(newItem, file.FullName); collection.Add(newItem); } var poshToolbeltTypeFiles = directoryInfo.GetFiles("*.pttype"); foreach (var file in poshToolbeltTypeFiles) { var newItem = new TreeViewItem(); newItem.Header = file.Name; newItem.MouseDoubleClick += (sender, args) => { OpenFileService.OpenFile(file.FullName); }; AddDeleteToTreeViewItem(newItem, file.FullName); var text = File.ReadAllText(file.FullName); var type = JsonConvert.DeserializeObject <POSHToolbeltType>(text); TypeService.CustomTypes.Add(type); collection.Add(newItem); } }