public override bool CanExecute(object parameter) { var node = parameter as CodeExplorerComponentViewModel; if (node == null) { return(false); } var panel = _presenter.Window() as SourceControlPanel; if (panel == null) { return(false); } var panelVM = panel.ViewModel as SourceControlViewViewModel; if (panelVM == null) { return(false); } panelVM.SetTab(SourceControlTab.Changes); var changesVM = panelVM.SelectedItem.ViewModel as ChangesViewViewModel; return(changesVM != null && changesVM.IncludedChanges != null && changesVM.IncludedChanges.Select(s => s.FilePath).Contains(GetFileName(node))); }
public App(VBE vbe, IMessageBox messageBox, IRubberduckParser parser, IGeneralConfigService configService, IAppMenu appMenus, RubberduckCommandBar stateBar, IRubberduckHooks hooks, SourceControlDockablePresenter sourceControlPresenter) { _vbe = vbe; _messageBox = messageBox; _parser = parser; _configService = configService; _autoSave = new AutoSave.AutoSave(_vbe, _configService); _appMenus = appMenus; _stateBar = stateBar; _hooks = hooks; _logger = LogManager.GetCurrentClassLogger(); var sourceControlPanel = (SourceControlPanel)sourceControlPresenter.Window(); _sourceControlPanelVM = (SourceControlViewViewModel)sourceControlPanel.ViewModel; _branchesVM = (BranchesViewViewModel)_sourceControlPanelVM.TabItems.Single(t => t.ViewModel.Tab == SourceControlTab.Branches).ViewModel; _sourceControlPanelVM.OpenRepoStarted += DisableSinkEventHandlers; _sourceControlPanelVM.OpenRepoCompleted += EnableSinkEventHandlersAndUpdateCache; _branchesVM.LoadingComponentsStarted += DisableSinkEventHandlers; _branchesVM.LoadingComponentsCompleted += EnableSinkEventHandlersAndUpdateCache; _hooks.MessageReceived += _hooks_MessageReceived; _configService.SettingsChanged += _configService_SettingsChanged; _configService.LanguageChanged += ConfigServiceLanguageChanged; _parser.State.StateChanged += Parser_StateChanged; _parser.State.StatusMessageUpdate += State_StatusMessageUpdate; _stateBar.Refresh += _stateBar_Refresh; _sink = new VBProjectsEventsSink(); var connectionPointContainer = (IConnectionPointContainer)_vbe.VBProjects; var interfaceId = typeof(_dispVBProjectsEvents).GUID; connectionPointContainer.FindConnectionPoint(ref interfaceId, out _projectsEventsConnectionPoint); _sink.ProjectAdded += sink_ProjectAdded; _sink.ProjectRemoved += sink_ProjectRemoved; _sink.ProjectActivated += sink_ProjectActivated; _sink.ProjectRenamed += sink_ProjectRenamed; _projectsEventsConnectionPoint.Advise(_sink, out _projectsEventsCookie); UiDispatcher.Initialize(); }
public override void Execute(object parameter) { _presenter.Show(); var panel = _presenter.Window() as SourceControlPanel; if (panel != null) { var vm = panel.ViewModel as SourceControlViewViewModel; if (vm != null) { vm.SetTab(SourceControlTab.Changes); } } }