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