public void Handle(IFolderBrowserDataContext args) { if (args == null) { return; } if (args.FolderBrowserViewModel == null) { return; } args.FolderBrowserViewModel.FileCollectionChanged += (sender, e) => RefreshFilesCount(args); }
public void Handle(IFolderBrowserDataContext dataContext) { if (dataContext == null) { throw new ArgumentNullException(nameof(dataContext)); } var vm = dataContext.FolderBrowserViewModel; //加入计算哈希值菜单; vm.AddContextCommand(CreateComputeHashCommandItem(vm)); //加入加入哈希集菜单; vm.AddContextCommand(CreateAddToHashSetCommandItem(vm)); //加入匹配哈希值菜单; vm.AddContextCommand(CreateMatchHashSetsCommandItem(vm)); }
public void Handle(IFolderBrowserDataContext dataContext) { if (dataContext == null) { throw new ArgumentNullException(nameof(dataContext)); } var vm = dataContext.FolderBrowserViewModel; vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateSaveAsFileCommandItem(vm)); vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateSaveCheckedFilesCommandItem(vm)); vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateCheckCommandItem(vm)); vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateUnCheckCommandItem(vm)); vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateCheckAllCommandItem(vm)); vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateViewFileCommandItem(vm)); vm.AddContextCommand(FolderBrowserCommandItemFactory.CreateNavigateCommandItem(vm)); }
private void RefreshFilesCount(IFolderBrowserDataContext dataContext) { if (dataContext == null) { return; } var vm = dataContext.FolderBrowserViewModel; if (vm == null) { return; } long fileCount = 0; long regFileCount = 0; long dirCount = 0; try { foreach (var file in vm.FileRows) { if (file.File is IRegularFile) { regFileCount++; } else if (file.File is IDirectory) { dirCount++; } fileCount++; } ThreadInvoker.UIInvoke(() => { var fileCountItem = StatusBarService.GetOrCreateStatusBarTextItem(Constants.StatusBarItemText_FileCount, GridChildLength.Auto, 5); var regFileCountItem = StatusBarService.GetOrCreateStatusBarTextItem(Constants.StatusBarItemGUID_RegFileCount, GridChildLength.Auto, 6); var dirCountItem = StatusBarService.GetOrCreateStatusBarTextItem(Constants.StatusBarItemGUID_DirectoryCount, GridChildLength.Auto, 7); fileCountItem.Text = $"{LanguageService.FindResourceString(Constants.StatusBarItemText_FileCount)} {fileCount}"; regFileCountItem.Text = $"{LanguageService.FindResourceString(Constants.StatusBarItemText_RegFileCount)} {regFileCount}"; dirCountItem.Text = $"{LanguageService.FindResourceString(Constants.StatusBarItemText_DirectoryCount)} {dirCount}"; }); } catch (Exception ex) { LoggerService.WriteCallerLine(ex.Message); } }
public void Handle(IFolderBrowserDataContext folderBrowserDataContext) { if (folderBrowserDataContext == null) { return; } if (folderBrowserDataContext.FolderBrowserViewModel == null) { return; } if (folderBrowserDataContext.FolderBrowserViewModel.OwnedFileCollection == null) { return; } var navContext = FileExplorerDataContextFactory.CreateNavMenuDataContext(); folderBrowserDataContext.StackGrid.AddChild(navContext, Contracts.Controls.GridChildLength.Auto); folderBrowserDataContext.FolderBrowserViewModel.IsBusy = true; folderBrowserDataContext.FolderBrowserViewModel.BusyWord = LanguageService.FindResourceString(Constants.BusyWord_NavMenuBeingBuilt); ThreadInvoker.BackInvoke(() => { //跳转目录时导航节点变化; folderBrowserDataContext.FolderBrowserViewModel.CurrentPathChanged += (sender, e) => { var currentPath = folderBrowserDataContext.FolderBrowserViewModel.CurrentPath; if (currentPath == null) { return; } navContext.NavMenuViewModel.SelectedPath = currentPath; }; //导航选中节点发生变化时跳转目录; navContext.NavMenuViewModel.InternalSelectedPathChanged += (sender, e) => { var slPath = navContext.NavMenuViewModel.SelectedPath; if (string.IsNullOrEmpty(slPath)) { return; } folderBrowserDataContext.FolderBrowserViewModel.CurrentPath = slPath; }; //创建数节点; var node = CreateNodeModelWithFileCollection(folderBrowserDataContext.FolderBrowserViewModel.OwnedFileCollection); TraveseTreeChildren( folderBrowserDataContext.FolderBrowserViewModel.OwnedFileCollection, node, CreateChildrenCollection, (pNode, newNode) => pNode.Children.Add(newNode), CreateNodeModelWithFileCollection ); navContext.NavMenuViewModel.RootNavNode = node; folderBrowserDataContext.FolderBrowserViewModel.IsBusy = false; folderBrowserDataContext.FolderBrowserViewModel.BusyWord = string.Empty; }); }