Beispiel #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());
        }
Beispiel #3
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());
        }