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)));;
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #10
0
        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);
        }