private void ChangeFocusedTreeNode(IFileSystemElement targetElement) { Task.Run(() => SearchTreeInstance.EndSearch()); var nwTreeRoot = FileSystemFacade.Instance.CreateFileSystemTree(targetElement as SFMDirectory).Root; DynamicFileSystemTree.LoadNodesChildren(nwTreeRoot); FocusedTreeNode = nwTreeRoot; }
private void EndSearch() { if (SearchTreeInstance.IsSearching) { SearchTreeInstance.EndSearch(); } if (FocusedTreeNode is SearchNode) { ChangeFocusedTreeNode(directoryBeforeSearch); } }
private void SetSearchArguments(string request, SearchTree.SearchType searchType, bool considerContent, bool caseSensetive, bool isRegularExpression) { var args = new SearchTree.SearchArguments() { requestString = request, considerFilesContent = considerContent, searchType = searchType, caseSensetive = caseSensetive, isRegularExpression = isRegularExpression }; if (FocusedTreeNode is SearchNode) { args.searchRootPath = SearchTreeInstance.Arguments.searchRootPath; } else { args.searchRootPath = FocusedTreeNode.Value.ElementPath; } SearchTreeInstance.SetArguments(args); }
private void StartNewSearch(string request, SearchTree.SearchType searchType, bool considerContent, bool caseSensetive, bool isRegularExpression) { while (SearchTreeInstance.IsSearching) { SearchTreeInstance.EndSearch(); } SetSearchArguments(request, searchType, considerContent, caseSensetive, isRegularExpression); if (!(FocusedTreeNode is SearchNode)) { directoryBeforeSearch = new SFMDirectory(FocusedTreeNode.Value.ElementPath); if (!FileSystemTree.Contains(FocusedTreeNode)) { FocusedTreeNode.Tree.Dispose(); } } FocusedTreeNode.DisposeObservableCollections(); FocusedTreeNode = SearchTreeInstance.Root; SearchTreeInstance.StartSearch(); }