public void MenuRenameFile_Click(object sender, RoutedEventArgs e) { var selected = FolderBrowser.GetSelectedItem(); if (selected == null) { return; } if (selected.FullPath == "..") { return; } // Start Editing the file name selected.EditName = selected.DisplayName; selected.OriginalRenamePath = selected.FullPath; selected.IsEditing = true; var tvItem = FolderBrowser.GetNestedTreeviewItem(selected); if (tvItem != null) { var tb = WindowUtilities.FindVisualChild <TextBox>(tvItem); tb?.Focus(); } }
public void MenuAddDirectory_Click(object sender, RoutedEventArgs e) { var selected = TreeFolderBrowser.SelectedItem as PathItem; if (selected == null || selected.Parent == null) { // No files/folders selected = new PathItem() { IsFolder = true, FullPath = FolderBrowser.FolderPath, Parent = FolderBrowser.ActivePathItem.Parent, Files = FolderBrowser.ActivePathItem.Files }; FolderBrowser.ActivePathItem = selected; } string path; if (!selected.IsFolder) { path = Path.Combine(Path.GetDirectoryName(selected.FullPath), "NewFolder"); } else { var treeItem = FolderBrowser.GetNestedTreeviewItem(selected); if (treeItem != null) { treeItem.IsExpanded = true; } path = Path.Combine(selected.FullPath, "NewFolder"); } var item = new PathItem { FullPath = path, IsFolder = true, IsEditing = true, IsSelected = true }; item.SetIcon(); if (!selected.IsFolder) { item.Parent = selected.Parent; } else { item.Parent = selected; } item.Parent.Files.Insert(0, item); FolderBrowser.SetTreeViewSelectionByItem(item); }
public void MenuAddFile_Click(object sender, RoutedEventArgs e) { var selected = TreeFolderBrowser.SelectedItem as PathItem; if (selected == null) { // No files/folders selected = new PathItem() { IsFolder = true, FullPath = FolderBrowser.FolderPath }; FolderBrowser.ActivePathItem = selected; } string path; TreeViewItem parentTreeViewItem = FolderBrowser.GetNestedTreeviewItem(selected); if (selected.FullPath == "..") { path = Path.Combine(FolderBrowser.FolderPath, "README.md"); } else if (!selected.IsFolder) { path = Path.Combine(Path.GetDirectoryName(selected.FullPath), "README.md"); } else { if (parentTreeViewItem != null) { parentTreeViewItem.IsExpanded = true; } path = Path.Combine(selected.FullPath, "README.md"); } if (File.Exists(path)) { path = Path.Combine(Path.GetDirectoryName(path), "NewFile.md"); if (File.Exists(path)) { for (int i = 1; i < 30; i++) { path = Path.Combine(Path.GetDirectoryName(path), $"NewFile{i}.md"); if (!File.Exists(path)) { break; } } } } var item = new PathItem { FullPath = path, IsFolder = false, IsFile = true, IsEditing = true, IsSelected = true }; item.EditName = item.DisplayName; item.SetIcon(); if (selected.FullPath == "..") { item.Parent = FolderBrowser.ActivePathItem; // current path } else if (!selected.IsFolder) { item.Parent = selected.Parent; } else { item.Parent = selected; } item.Parent.Files.Insert(0, item); Model.Window.Dispatcher.InvokeAsync( () => FolderBrowser.SetTreeViewSelectionByItem(item, parentTreeViewItem), DispatcherPriority.ApplicationIdle); }