Ejemplo n.º 1
0
        public void Handle(RootChangedEvent message)
        {
            Queue <IScriptCommand> cmds = new Queue <IScriptCommand>();

            cmds.Enqueue(Explorer.ChangeRoot(message.ChangeType, message.AppliedRootDirectories));

            if (message.Sender != null && message.Sender != this)
            {
                cmds.Enqueue(UIScriptCommands.ExplorerGoToValue(CurrentDirectory.EntryModel));
            }
            else
            {
                switch (message.ChangeType)
                {
                case ChangeType.Changed:
                    cmds.Enqueue(UIScriptCommands.ExplorerGoToValue(message.AppliedRootDirectories.First()));
                    break;

                case ChangeType.Deleted:
                    cmds.Enqueue(UIScriptCommands.ExplorerGoToValue(RootModels.FirstOrDefault()));
                    break;
                }
            }

            Commands.ExecuteAsync(cmds.ToArray());
        }
Ejemplo n.º 2
0
        public async Task GoAsync(IEntryModel entryModel)
        {
            entryModel = entryModel ?? RootModels.FirstOrDefault();
            if (entryModel != null)
            {
                await Task.WhenAll(
                    FileList.SetCurrentDirectoryAsync(entryModel),
                    DirectoryTree.SelectAsync(entryModel),
                    Breadcrumb.Selection.AsRoot().SelectAsync(entryModel));

                NotifyOfPropertyChange(() => CurrentDirectory);
                NotifyOfPropertyChange(() => CurrentDirectory);
            }
        }
Ejemplo n.º 3
0
        public async Task InitializeViewAttachedAsync(IExplorerViewModel evm)
        {
            evm.RootModels = RootModels;
            //Initializers.Add(ExplorerInitializers.StartupDirectory(RootModels.FirstOrDefault()));
            //Initializers.EnsureOneStartupDirectoryOnly();
            if (!Initializers.Any(i => i is StartupDirInitializer))
            {
                var firstDir = RootModels.FirstOrDefault();
                if (firstDir != null)
                {
                    await evm.GoAsync(firstDir);
                }
            }

            await Initializers.InitalizeAsync(evm);
        }