public async Task <IEnumerable <IMetadataViewModel> > loadEntriesTask(IFileListViewModel flvm) { if (flvm == null) { return(new List <IMetadataViewModel>()); } var retList = new List <IMetadata>(); var selectedItems = flvm.Selection.SelectedItems.Select(evm => evm.EntryModel).ToList(); var allCount = flvm.ProcessedEntries.All.Count; foreach (var mp in ExtraMetadataProviders) { retList.AddRange(await mp.GetMetadataAsync(selectedItems, allCount, flvm.CurrentDirectory)); } retList.AddRange(await flvm.CurrentDirectory.Profile.MetadataProvider.GetMetadataAsync( flvm.Selection.SelectedItems.Select(evm => evm.EntryModel), flvm.ProcessedEntries.All.Count, flvm.CurrentDirectory)); return(retList.Where(m => _filter(m)) .Distinct() .Select(m => MetadataViewModel.FromMetadata(m)));; }
public override async Task <IScriptCommand> ExecuteAsync(ParameterDic pm) { var flValue = pm.GetValue(FileListKey); IFileListViewModel flvm = flValue is IExplorerViewModel ? (flValue as IExplorerViewModel).FileList : flValue as IFileListViewModel; if (flvm == null) { return(ResultCommand.Error(new KeyNotFoundException(FileListKey))); } IEntryModel[] value = new IEntryModel[] { }; switch (AssignType) { case FileListAssignType.All: value = flvm.ProcessedEntries.EntriesHelper.AllNonBindable .Select(evm => evm.EntryModel).ToArray(); break; case FileListAssignType.Selected: value = flvm.Selection.SelectedItems.Select(evm => evm.EntryModel).ToArray(); break; default: return(ResultCommand.Error(new NotSupportedException("AssignType"))); } return(ScriptCommands.Assign(DestinationKey, value, false, NextCommand)); }
private void updateDisplayItemsAndCaption(IFileListViewModel flvm) { SelectionCount = flvm.Selection.SelectedItems.Count(); Metadata.LoadAsync(UpdateMode.Replace, true, flvm); DisplayItems.Clear(); switch (SelectionCount) { case 0: //Caption = String.Format(NoneSelected, flvm.CurrentDirectory.EntryModel.Label); DisplayItems.Add(EntryViewModel.FromEntryModel(flvm.CurrentDirectory)); break; case 1: //Caption = String.Format(OneSelected, flvm.SelectedItems.First().EntryModel.Label); DisplayItems.Add(flvm.Selection.SelectedItems.First()); break; default: //Caption = String.Format(ManySelected, flvm.SelectedItems.Count.ToString()); DisplayItems.AddRange(flvm.Selection.SelectedItems.Take(5)); break; } }
public FileListCommandManager(IFileListViewModel flvm, IWindowManager windowManager, IEventAggregator events, params IExportCommandBindings[] additionalBindingExportSource) : base(additionalBindingExportSource) { _flvm = flvm; IEntryModel _currentDirectoryModel = null; InitCommandManager(); ToolbarCommands = new ToolbarCommandsHelper(events, ParameterDicConverter, message => { _currentDirectoryModel = message.NewModel; return(new IEntryModel[] { _currentDirectoryModel }); }, message => message.SelectedModels.Count() == 0 && _currentDirectoryModel != null ? new IEntryModel[] { _currentDirectoryModel } : message.SelectedModels.ToArray()) { ExtraCommandProviders = new[] { new StaticCommandProvider(new SelectGroupCommand(flvm), new ViewModeCommand(flvm), new SeparatorCommandModel(), new CommandModel(ExplorerCommands.NewFolder) { IsVisibleOnToolbar = true, HeaderIconExtractor = ResourceIconExtractor <ICommandModel> .ForSymbol(0xE188) }, new DirectoryCommandModel( new CommandModel(ExplorerCommands.NewFolder) { Header = Strings.strFolder, IsVisibleOnMenu = true }) { IsVisibleOnMenu = true, Header = Strings.strNew, IsEnabled = true }, new ToggleVisibilityCommand(flvm.Sidebar, ExplorerCommands.TogglePreviewer) ) } }; }
public ViewModeCommand(IFileListViewModel flvm) : base(ExplorerCommands.ToggleViewMode, generateCommandModel().ToArray() ) { IsVisibleOnMenu = true; IsVisibleOnToolbar = true; _flvm = flvm; IsHeaderVisible = false; SliderValue = flvm.Parameters.ItemSize; }
public override async Task <IScriptCommand> ExecuteAsync(ParameterDic pm) { var flValue = pm.GetValue(FileListKey); IFileListViewModel flvm = flValue is IExplorerViewModel ? (flValue as IExplorerViewModel).FileList : flValue as IFileListViewModel; if (flvm == null) { return(ResultCommand.Error(new KeyNotFoundException(FileListKey))); } return(ScriptCommands.Assign(DestinationKey, flvm.Selection.SelectedItems.Select(evm => evm.EntryModel).ToArray(), false, NextCommand)); }
public override async Task <IScriptCommand> ExecuteAsync(ParameterDic pm) { var flValue = pm.GetValue(FileListKey); IFileListViewModel flvm = flValue is IExplorerViewModel ? (flValue as IExplorerViewModel).FileList : flValue as IFileListViewModel; if (flvm == null) { return(ResultCommand.Error(new KeyNotFoundException(FileListKey))); } await flvm.ProcessedEntries.EntriesHelper.LoadAsync(UpdateMode.Update, Force); return(NextCommand); }
public SelectGroupCommand(IFileListViewModel flvm) : base(ApplicationCommands.SelectAll, new CommandModel(ApplicationCommands.SelectAll) { //Symbol = Convert.ToChar(0xE14E), HeaderIconExtractor = ResourceIconExtractor <ICommandModel> .ForSymbol(0xE14E), IsVisibleOnMenu = true, IsVisibleOnToolbar = true }, new CommandModel(ExplorerCommands.ToggleCheckBox) { //Symbol = Convert.ToChar(0xe1ef), HeaderIconExtractor = ResourceIconExtractor <ICommandModel> .ForSymbol(0xE1EF), IsVisibleOnMenu = true, IsVisibleOnToolbar = true }) { IsVisibleOnMenu = true; IsVisibleOnToolbar = true; //Symbol = Convert.ToChar(0xE10B); HeaderIconExtractor = ResourceIconExtractor <ICommandModel> .ForSymbol(0xE10B); Header = Strings.txtSelection; }
internal static void updateViewMode(IFileListViewModel flvm, string viewMode, int step) { flvm.Parameters.ItemSize = step; switch (viewMode) { case "ExtraLargeIcon": case "LargeIcon": flvm.Parameters.ViewMode = "Icon"; break; //case "Grid": // AsyncUtils.RunSync(() => flvm.ProcessedEntries.EntriesHelper.UnloadAsync()); // flvm.ViewMode = viewMode; // break; default: flvm.Parameters.ViewMode = viewMode; break; } }
public override async Task <IScriptCommand> ExecuteAsync(ParameterDic pm) { var flValue = pm.GetValue(FileListKey); IFileListViewModel flvm = flValue is IExplorerViewModel ? (flValue as IExplorerViewModel).FileList : flValue as IFileListViewModel; IEntryModel[] ems = await pm.GetValueAsEntryModelArrayAsync(EntriesKey, null); if (flvm == null) { return(ResultCommand.Error(new KeyNotFoundException(FileListKey))); } logger.Info(String.Format("Select {0} {1}", FileListKey, EntriesKey)); using (var releaser = await flvm.ProcessedEntries.EntriesHelper.LoadingLock.LockAsync()) { flvm.Selection.Select(evm => evm != null && ems.Contains(evm.EntryModel)); } return(NextCommand); }