Exemplo n.º 1
0
        private async Task CreateTerminal(ShellProfile profile, NewTerminalLocation location)
        {
            if (!_alreadyLaunched)
            {
                var viewModel = _container.Resolve <MainViewModel>();
                await viewModel.AddTerminalAsync(profile);
                await CreateMainView(typeof(MainPage), viewModel, true).ConfigureAwait(true);
            }
            else if (location == NewTerminalLocation.Tab && _mainViewModels.Count > 0)
            {
                MainViewModel item = _mainViewModels.FirstOrDefault(o => o.ApplicationView.Id == _activeWindowId);
                if (item != null)
                {
                    await item.AddTerminalAsync(profile);
                }
                else
                {
                    await _mainViewModels.Last().AddTerminalAsync(profile);
                }
            }
            else
            {
                var viewModel = await CreateNewTerminalWindow().ConfigureAwait(true);

                await viewModel.AddTerminalAsync(profile);
            }
        }
Exemplo n.º 2
0
        private async Task CreateTerminal(ShellProfile profile, NewTerminalLocation location)
        {
            if (!_alreadyLaunched)
            {
                var viewModel = _container.Resolve <MainViewModel>();
                viewModel.AddTerminal(profile);
                await CreateMainView(typeof(MainPage), viewModel, true).ConfigureAwait(true);
            }
            else if (location == NewTerminalLocation.Tab && _mainViewModels.Count > 0)
            {
                _mainViewModels.Last().AddTerminal(profile);
            }
            else
            {
                var viewModel = await CreateNewTerminalWindow().ConfigureAwait(true);

                viewModel.AddTerminal(profile);
            }
        }
Exemplo n.º 3
0
        private async Task CreateTerminal(ShellProfile profile, NewTerminalLocation location, ActivationViewSwitcher viewSwitcher = null)
        {
            async Task ShowAsStandaloneAsync(MainViewModel viewModel)
            {
                int viewId = viewModel.ApplicationView.Id;

                if (viewSwitcher != null)
                {
                    await viewModel.ApplicationView.RunOnDispatcherThread(async() => await viewSwitcher.ShowAsStandaloneAsync(viewId));
                }
                else
                {
                    await ApplicationViewSwitcher.TryShowAsStandaloneAsync(viewId);
                }
            }

            if (!_alreadyLaunched)
            {
                var viewModel = _container.Resolve <MainViewModel>();
                await viewModel.AddTerminalAsync(profile);
                await CreateMainView(typeof(MainPage), viewModel, true).ConfigureAwait(true);
            }
            else if (location == NewTerminalLocation.Tab && _mainViewModels.Count > 0)
            {
                MainViewModel item = _mainViewModels.FirstOrDefault(o => o.ApplicationView.Id == _activeWindowId);
                if (item == null)
                {
                    item = _mainViewModels.Last();
                }

                await item.AddTerminalAsync(profile);
                await ShowAsStandaloneAsync(item);
            }
            else
            {
                var viewModel = await CreateNewTerminalWindow().ConfigureAwait(true);

                await viewModel.AddTerminalAsync(profile);
                await ShowAsStandaloneAsync(viewModel);
            }
        }
Exemplo n.º 4
0
        private async Task CreateTerminalAsync(ShellProfile profile, NewTerminalLocation location, ActivationViewSwitcher viewSwitcher = null)
        {
            if (!_alreadyLaunched)
            {
                var viewModel = _container.Resolve <MainViewModel>();
                await viewModel.AddTabAsync(profile);
                await CreateMainViewAsync(typeof(MainPage), viewModel, true);
            }
            else if (location == NewTerminalLocation.Tab && _mainViewModels.Count > 0)
            {
                var item = _mainViewModels.FirstOrDefault(o => o.ApplicationView.Id == _activeWindowId) ??
                           _mainViewModels.Last();

                await item.AddTabAsync(profile);
                await ShowAsStandaloneAsync(item, viewSwitcher);
            }
            else
            {
                var viewModel = await CreateNewTerminalWindowAsync();

                await viewModel.AddTabAsync(profile);
                await ShowAsStandaloneAsync(viewModel, viewSwitcher);
            }
        }