Example #1
0
        public override void Initialize(IServiceProvider serviceProvider)
        {
            serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.pullRequestCommand,
                                              (s, e) => Load(new ViewWithData(UIControllerFlow.PullRequestList)).Forget());

            back = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.backCommand,
                                                     () => !disabled && (navController?.HasBack ?? false),
                                                     () => {
                DisableButtons();
                navController.Back();
            },
                                                     true);

            forward = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.forwardCommand,
                                                        () => !disabled && (navController?.HasForward ?? false),
                                                        () => {
                DisableButtons();
                navController.Forward();
            },
                                                        true);

            refresh = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.refreshCommand,
                                                        () => !disabled,
                                                        () => {
                DisableButtons();
                Refresh();
            },
                                                        true);

            initialized = true;

            base.Initialize(serviceProvider);

            hosts.WhenAnyValue(x => x.IsLoggedInToAnyHost).Subscribe(_ => LoadDefault());
        }
        public override void Initialize(IServiceProvider serviceProvider)
        {
            serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.pullRequestCommand,
                (s, e) => Reload(new ViewWithData(UIControllerFlow.PullRequests) { ViewType = UIViewType.PRList }).Forget());

            back = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.backCommand,
                () => !disabled && currentNavItem > 0,
                () => {
                    DisableButtons();
                    Reload(navStack[--currentNavItem], true).Forget();
                },
                true);

            forward = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.forwardCommand,
                () => !disabled && currentNavItem < navStack.Count - 1,
                () => {
                    DisableButtons();
                    Reload(navStack[++currentNavItem], true).Forget();
                },
                true);

            refresh = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.refreshCommand,
                () => !disabled && navStack.Count > 0,
                () => {
                    DisableButtons();
                    Reload().Forget();
                },
                true);

            initialized = true;

            base.Initialize(serviceProvider);

            hosts.WhenAnyValue(x => x.IsLoggedInToAnyHost).Subscribe(_ => Reload().Forget());
        }
Example #3
0
        async Task InitializeMenus()
        {
            var menus = await GetServiceAsync(typeof(IMenuProvider)) as IMenuProvider;

            await ThreadingHelper.SwitchToMainThreadAsync();

            foreach (var menu in menus.Menus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, (s, e) => menu.Activate());
            }

            foreach (var menu in menus.DynamicMenus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, menu.CanShow, () => menu.Activate());
            }
        }
        protected override void Initialize()
        {
            base.Initialize();
            IncrementLaunchCount();

            var menus = serviceProvider.GetExportedValue <IMenuProvider>();

            foreach (var menu in menus.Menus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, (s, e) => menu.Activate());
            }

            foreach (var menu in menus.DynamicMenus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, menu.CanShow, () => menu.Activate());
            }
        }
Example #5
0
        protected override void Initialize()
        {
            AppDomain.CurrentDomain.AssemblyResolve += LoadAssemblyFromRunDir;

            base.Initialize();

            var menus = serviceProvider.GetExportedValue <IMenuProvider>();

            foreach (var menu in menus.Menus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, (s, e) => menu.Activate());
            }

            foreach (var menu in menus.DynamicMenus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, menu.CanShow, () => menu.Activate());
            }
        }
        async Task InitializeMenus()
        {
            var menus = await GetServiceAsync(typeof(IMenuProvider)) as IMenuProvider;

            if (menus == null)
            {
                // Ignore if null because Expression Blend doesn't support custom services or menu extensibility.
                return;
            }

            foreach (var menu in menus.Menus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, (s, e) => menu.Activate());
            }

            foreach (var menu in menus.DynamicMenus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, menu.CanShow, () => menu.Activate());
            }
        }
        public override void Initialize(IServiceProvider serviceProvider)
        {
            serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.pullRequestCommand,
                                              (s, e) => Reload(new ViewWithData(UIControllerFlow.PullRequests)
            {
                ViewType = UIViewType.PRList
            }).Forget());

            back = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.backCommand,
                                                     () => !disabled && currentNavItem > 0,
                                                     () => {
                DisableButtons();
                Reload(navStack[--currentNavItem], true).Forget();
            },
                                                     true);

            forward = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.forwardCommand,
                                                        () => !disabled && currentNavItem < navStack.Count - 1,
                                                        () => {
                DisableButtons();
                Reload(navStack[++currentNavItem], true).Forget();
            },
                                                        true);

            refresh = serviceProvider.AddCommandHandler(GuidList.guidGitHubToolbarCmdSet, PkgCmdIDList.refreshCommand,
                                                        () => !disabled && navStack.Count > 0,
                                                        () => {
                DisableButtons();
                Reload().Forget();
            },
                                                        true);

            initialized = true;

            base.Initialize(serviceProvider);

            hosts.WhenAnyValue(x => x.IsLoggedInToAnyHost).Subscribe(_ => Reload().Forget());
        }
Example #8
0
        async Task InitializeMenus()
        {
            var menus = await GetServiceAsync(typeof(IMenuProvider)) as IMenuProvider;

            if (menus == null)
            {
                // Ignore if null because Expression Blend doesn't support custom services or menu extensibility.
                return;
            }

            // IMenuCommandService.AddCommand uses IServiceProvider.GetService and must be called on Main thread.
            await ThreadingHelper.SwitchToMainThreadAsync();

            foreach (var menu in menus.Menus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, (s, e) => menu.Activate());
            }

            foreach (var menu in menus.DynamicMenus)
            {
                serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, menu.CanShow, () => menu.Activate());
            }
        }
        /// <inheritdoc/>
        public async Task InitializeAsync(IServiceProvider paneServiceProvider)
        {
            await UpdateContent(teServiceHolder.ActiveRepo);

            teServiceHolder.Subscribe(this, x => UpdateContent(x).Forget());
            connectionManager.Connections.CollectionChanged += (_, __) => UpdateContent(LocalRepository).Forget();

            BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.pullRequestCommand, showPullRequests);
            BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.backCommand, navigator.NavigateBack);
            BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.forwardCommand, navigator.NavigateForward);
            BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.refreshCommand, refresh);
            BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.githubCommand, openInBrowser);

            paneServiceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.helpCommand,
                                                  (_, __) =>
            {
                browser.OpenUrl(new Uri(GitHubUrls.Documentation));
                usageTracker.IncrementCounter(x => x.NumberOfGitHubPaneHelpClicks).Forget();
            });
        }
        OleMenuCommand BindNavigatorCommand <T>(IServiceProvider paneServiceProvider, int commandId, ReactiveCommand <T> command)
        {
            Guard.ArgumentNotNull(paneServiceProvider, nameof(paneServiceProvider));
            Guard.ArgumentNotNull(command, nameof(command));

            Func <bool> canExecute = () => Content == navigator && command.CanExecute(null);

            var result = paneServiceProvider.AddCommandHandler(
                Guids.guidGitHubToolbarCmdSet,
                commandId,
                canExecute,
                () => command.Execute(null),
                true);

            Observable.CombineLatest(
                this.WhenAnyValue(x => x.Content),
                command.CanExecuteObservable,
                (c, e) => c == navigator && e)
            .Subscribe(x => result.Enabled = x);

            return(result);
        }
        /// <inheritdoc/>
        public async Task InitializeAsync(IServiceProvider paneServiceProvider)
        {
            await initializing.WaitAsync();

            if (initialized)
            {
                return;
            }

            try
            {
                await UpdateContent(teamExplorerContext.ActiveRepository);

                teamExplorerContext.WhenAnyValue(x => x.ActiveRepository)
                .Skip(1)
                .ObserveOn(RxApp.MainThreadScheduler)
                .Subscribe(x => UpdateContent(x).Forget());

                connectionManager.Connections.CollectionChanged += (_, __) => UpdateContent(LocalRepository).Forget();

                BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.pullRequestCommand, showPullRequests);
                BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.backCommand, navigator.NavigateBack);
                BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.forwardCommand, navigator.NavigateForward);
                BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.refreshCommand, refresh);
                BindNavigatorCommand(paneServiceProvider, PkgCmdIDList.githubCommand, openInBrowser);

                paneServiceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.helpCommand,
                                                      (_, __) =>
                {
                    browser.OpenUrl(new Uri(GitHubUrls.Documentation));
                    usageTracker.IncrementCounter(x => x.NumberOfGitHubPaneHelpClicks).Forget();
                });
            }
            finally
            {
                initialized = true;
                initializing.Release();
            }
        }
Example #12
0
        public override void Initialize(IServiceProvider serviceProvider)
        {
            Guard.ArgumentNotNull(serviceProvider, nameof(serviceProvider));

            serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.pullRequestCommand,
                                              (s, e) => Load(new ViewWithData(UIControllerFlow.PullRequestList)).Forget());

            back = serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.backCommand,
                                                     () => !disabled && (navController?.HasBack ?? false),
                                                     () =>
            {
                DisableButtons();
                navController.Back();
            },
                                                     true);

            forward = serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.forwardCommand,
                                                        () => !disabled && (navController?.HasForward ?? false),
                                                        () =>
            {
                DisableButtons();
                navController.Forward();
            },
                                                        true);

            refresh = serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.refreshCommand,
                                                        () => !disabled,
                                                        () =>
            {
                DisableButtons();
                Refresh();
            },
                                                        true);

            serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.githubCommand,
                                              () => !disabled && (RepositoryOrigin == RepositoryOrigin.DotCom || RepositoryOrigin == RepositoryOrigin.Enterprise),
                                              () =>
            {
                switch (navController?.Current.CurrentFlow)
                {
                case UIControllerFlow.PullRequestDetail:
                    var prDetailViewModel = control.DataContext as IPullRequestDetailViewModel;
                    if (prDetailViewModel != null)
                    {
                        browser.OpenUrl(ActiveRepoUri.ToRepositoryUrl().Append("pull/" + prDetailViewModel.Model.Number));
                    }
                    else
                    {
                        goto default;
                    }
                    break;

                case UIControllerFlow.PullRequestList:
                case UIControllerFlow.PullRequestCreation:
                    browser.OpenUrl(ActiveRepoUri.ToRepositoryUrl().Append("pulls/"));
                    break;

                case UIControllerFlow.Home:
                default:
                    browser.OpenUrl(ActiveRepoUri.ToRepositoryUrl());
                    break;
                }
            },
                                              true);

            serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.helpCommand,
                                              () => true,
                                              () =>
            {
                browser.OpenUrl(new Uri(GitHubUrls.Documentation));
                usageTracker.IncrementCounter(x => x.NumberOfGitHubPaneHelpClicks).Forget();
            },
                                              true);

            initialized = true;

            base.Initialize(serviceProvider);

            hosts.WhenAnyValue(x => x.IsLoggedInToAnyHost).Subscribe(_ => LoadDefault());
        }