public bool ResetWorkspaceDirectoryIfRequired() { if (this.IseIntegrator == null) { return(false); } var currentPath = this.IseIntegrator.SelectedFilePath; if (String.IsNullOrEmpty(currentPath) || currentPath == this.CurrentWorkspaceDirectory) { return(false); } if (!this.AutoUpdateRootDirectory && this.CurrentWorkspaceDirectory != null) { return(false); } string newRootDirectoryToSearch = RootDirectoryProvider.GetRootDirectoryToSearch(currentPath); if (newRootDirectoryToSearch == null || newRootDirectoryToSearch == this.CurrentWorkspaceDirectory || FileSystemOperationsService.IsSubdirectory(this.CurrentWorkspaceDirectory, newRootDirectoryToSearch) || !Directory.Exists(newRootDirectoryToSearch)) { return(false); } this.SetWorkspaceDirectory(newRootDirectoryToSearch); return(true); }
public ResetWorkspaceDirectoryCommand(IseIntegrator iseIntegrator, WorkspaceDirectoryModel workspaceDirectoryModel, RootDirectoryProvider rootDirectoryProvider, FileSystemOperationsService fileSystemOperationsService) { this.iseIntegrator = iseIntegrator; this.workspaceDirectoryModel = workspaceDirectoryModel; this.rootDirectoryProvider = rootDirectoryProvider; this.fileSystemOperationsService = fileSystemOperationsService; }
public IseFileReloader(IseIntegrator iseIntegrator, FileSystemOperationsService fileSystemOperationsService, MessageBoxHelper messageBoxHelper) { this.iseIntegrator = iseIntegrator; this.fileSystemOperationsService = fileSystemOperationsService; this.messageBoxHelper = messageBoxHelper; this.iseFileWatchers = new Dictionary <string, IseFileWatcher>(); this.pathsToIgnore = new HashSet <string>(); }
public DeleteItemCommand(TreeViewModel treeViewModel, MessageBoxHelper messageBoxHelper, IseIntegrator iseIntegrator, FilesPatternProvider filesPatternProvider, FileSystemOperationsService fileSystemOperationsService, UnsavedFileChecker unsavedFileChecker) { this.treeViewModel = treeViewModel; this.messageBoxHelper = messageBoxHelper; this.iseIntegrator = iseIntegrator; this.filesPatternProvider = filesPatternProvider; this.fileSystemOperationsService = fileSystemOperationsService; this.unsavedFileChecker = unsavedFileChecker; }
public void MoveTreeItem(TreeViewEntryItemModel movedItem, TreeViewEntryItemModel destinationItem, string rootDirectory) { if (movedItem == destinationItem || movedItem == null) { return; } if (!this.HandleUnsavedFileManipulation(movedItem)) { return; } string destPath = destinationItem != null ? destinationItem.Path : rootDirectory; if (!MessageBoxHelper.ShowConfirmMessage(String.Format("Please confirm you want to move '{0}' to '{1}'.", movedItem.Path, destPath))) { return; } try { string newPath; // moved to the empty place, i.e. to the workspace directory if (destinationItem == null) { newPath = this.GenerateNewPathForDir(rootDirectory, movedItem.Name); } else if (destinationItem.NodeType == NodeType.File) { newPath = this.GenerateNewPath(destinationItem.Path, movedItem.Name); } else if (destinationItem.NodeType == NodeType.Directory) { newPath = this.GenerateNewPathForDir(destinationItem.Path, movedItem.Name); } else { return; } this.FilesPatternProvider.RemoveAdditionalPath(movedItem.Path); this.FilesPatternProvider.AddAdditionalPath(newPath); bool closed = this.IseIntegrator.CloseFile(movedItem.Path); FileSystemOperationsService.RenameFileOrDirectory(movedItem.Path, newPath); if (closed) { this.IseIntegrator.GoToFile(newPath); } if (destinationItem != null) { destinationItem.IsExpanded = true; } } catch (Exception e) { this.PathOfItemToSelectOnRefresh = null; MessageBoxHelper.ShowError("Failed to move: " + e.Message); } }
public MoveItemCommand(TreeViewModel treeViewModel, MessageBoxHelper messageBoxHelper, WorkspaceDirectoryModel workspaceDirectoryModel, FilesPatternProvider filesPatternProvider, FileSystemOperationsService fileSystemOperationsService, IseIntegrator iseIntegrator, UnsavedFileChecker unsavedFileEnforcer) { this.treeViewModel = treeViewModel; this.messageBoxHelper = messageBoxHelper; this.workspaceDirectoryModel = workspaceDirectoryModel; this.filesPatternProvider = filesPatternProvider; this.fileSystemOperationsService = fileSystemOperationsService; this.iseIntegrator = iseIntegrator; this.unsavedFileEnforcer = unsavedFileEnforcer; }
public EndEditingTreeItemCommand(MainViewModel mainViewModel, TreeViewModel treeViewModel, FilesPatternProvider filesPatternProvider, IseIntegrator iseIntegrator, FileSystemOperationsService fileSystemOperationsService, MessageBoxHelper messageBoxHelper, DocumentHierarchyFactory documentHierarchyFactory) { this.mainViewModel = mainViewModel; this.treeViewModel = treeViewModel; this.filesPatternProvider = filesPatternProvider; this.iseIntegrator = iseIntegrator; this.fileSystemOperationsService = fileSystemOperationsService; this.messageBoxHelper = messageBoxHelper; this.documentHierarchyFactory = documentHierarchyFactory; }
public void DeleteTreeItem(TreeViewEntryItemModel selectedItem) { if (selectedItem == null) { return; } if (!this.HandleUnsavedFileManipulation(selectedItem)) { return; } int numFilesInside = 0; try { numFilesInside = Directory.GetFileSystemEntries(selectedItem.Path).Count(); } catch (Exception) { // ignore - this only has impact on message } string message = numFilesInside == 0 ? String.Format("'{0}' will be deleted permanently.", selectedItem.Path) : String.Format("'{0}' will be deleted permanently (together with {1} items inside).", selectedItem.Path, numFilesInside); if (MessageBoxHelper.ShowConfirmMessage(message)) { try { this.IseIntegrator.CloseFile(selectedItem.Path); this.FilesPatternProvider.RemoveAdditionalPath(selectedItem.Path); FileSystemOperationsService.DeleteFileOrDirectory(selectedItem.Path); } catch (Exception e) { MessageBoxHelper.ShowError("Failed to delete: " + e.Message); } } }
private void EndRenamingTreeItem(string newValue, bool save, TreeViewEntryItemModel selectedItem) { if (!save || String.IsNullOrEmpty(newValue) || selectedItem == null) { return; } try { string oldPath = selectedItem.Path; string newPath = this.GenerateNewPath(selectedItem.Path, newValue); bool closed = this.IseIntegrator.CloseFile(oldPath); FileSystemOperationsService.RenameFileOrDirectory(oldPath, newPath); if (closed) { this.IseIntegrator.GoToFile(newPath); } } catch (Exception e) { this.PathOfItemToSelectOnRefresh = null; MessageBoxHelper.ShowError("Failed to rename: " + e.Message); } }
private void EndAddingTreeItem(string newValue, bool save, TreeViewEntryItemModel selectedItem) { if (selectedItem == null) { return; } if (!save || String.IsNullOrEmpty(newValue)) { this.DocumentHierarchyFactory.RemoveTemporaryNode(selectedItem.Node); this.DeleteTreeViewEntryItemModel(selectedItem); return; } var newPath = this.GenerateNewPath(selectedItem.Path, newValue); INode newNode = null; if (this.FindTreeViewEntryItemByPath(newPath) != null) { this.DocumentHierarchyFactory.RemoveTemporaryNode(selectedItem.Node); this.DeleteTreeViewEntryItemModel(selectedItem); MessageBoxHelper.ShowError("Item '" + newPath + "' already exists."); return; } if (selectedItem.NodeType == NodeType.Directory) { try { newNode = this.DocumentHierarchyFactory.UpdateTemporaryNode(selectedItem.Node, newPath); var parent = selectedItem.Parent; this.DeleteTreeViewEntryItemModel(selectedItem); selectedItem = this.CreateTreeViewEntryItemModel(newNode, parent, true); this.FilesPatternProvider.AddAdditionalPath(newPath); FileSystemOperationsService.CreateDirectory(newPath); } catch (Exception e) { if (newNode != null) { newNode.Remove(); } if (selectedItem != null) { this.DeleteTreeViewEntryItemModel(selectedItem); } this.PathOfItemToSelectOnRefresh = null; MessageBoxHelper.ShowError("Failed to create directory '" + newPath + "': " + e.Message); } } else if (selectedItem.NodeType == NodeType.File) { try { newNode = this.DocumentHierarchyFactory.UpdateTemporaryNode(selectedItem.Node, newPath); var parent = selectedItem.Parent; this.DeleteTreeViewEntryItemModel(selectedItem); selectedItem = this.CreateTreeViewEntryItemModel(newNode, parent, true); this.FilesPatternProvider.AddAdditionalPath(newPath); FileSystemOperationsService.CreateFile(newPath); this.IseIntegrator.GoToFile(newPath); } catch (Exception e) { if (newNode != null) { newNode.Remove(); } if (selectedItem != null) { this.DeleteTreeViewEntryItemModel(selectedItem); } this.PathOfItemToSelectOnRefresh = null; MessageBoxHelper.ShowError("Failed to create file '" + newPath + "': " + e.Message); } } }