public SourceControlPresenter(
            VBE vbe, AddIn addin,
            IConfigurationService <SourceControlConfiguration> configService,
            ISourceControlView view,
            IChangesPresenter changesPresenter,
            IBranchesPresenter branchesPresenter,
            ISettingsPresenter settingsPresenter,
            IUnsyncedCommitsPresenter unsyncedPresenter,
            IFolderBrowserFactory folderBrowserFactory,
            ISourceControlProviderFactory providerFactory,
            IFailedMessageView failedMessageView,
            ILoginView loginView
            )
            : base(vbe, addin, view)
        {
            _configService = configService;
            _config        = _configService.LoadConfiguration();

            _changesPresenter = changesPresenter;
            _changesPresenter.ActionFailed += OnActionFailed;

            _branchesPresenter = branchesPresenter;
            _branchesPresenter.ActionFailed += OnActionFailed;

            _settingsPresenter = settingsPresenter;
            _settingsPresenter.ActionFailed += OnActionFailed;

            _unsyncedPresenter = unsyncedPresenter;
            _unsyncedPresenter.ActionFailed += OnActionFailed;

            _folderBrowserFactory             = folderBrowserFactory;
            _providerFactory                  = providerFactory;
            _branchesPresenter.BranchChanged += _branchesPresenter_BranchChanged;

            _loginView          = loginView;
            _loginView.Confirm += _loginView_Confirm;

            _failedMessageView = failedMessageView;
            _failedMessageView.DismissSecondaryPanel += DismissSecondaryPanel;

            _view = view;
            _view.SecondaryPanel = _failedMessageView;

            _view.RefreshData             += OnRefreshChildren;
            _view.OpenWorkingDirectory    += OnOpenWorkingDirectory;
            _view.InitializeNewRepository += OnInitNewRepository;
        }
        public SourceControlPresenter(
            VBE vbe, AddIn addin, 
            IConfigurationService<SourceControlConfiguration> configService, 
            ISourceControlView view, 
            IChangesPresenter changesPresenter, 
            IBranchesPresenter branchesPresenter, 
            ISettingsPresenter settingsPresenter, 
            IUnsyncedCommitsPresenter unsyncedPresenter, 
            IFolderBrowserFactory folderBrowserFactory, 
            ISourceControlProviderFactory providerFactory, 
            IFailedMessageView failedMessageView, 
            ILoginView loginView
            )
            : base(vbe, addin, view)
        {
            _configService = configService;
            _config = _configService.LoadConfiguration();

            _changesPresenter = changesPresenter;
            _changesPresenter.ActionFailed += OnActionFailed;

            _branchesPresenter = branchesPresenter;
            _branchesPresenter.ActionFailed += OnActionFailed;

            _settingsPresenter = settingsPresenter;
            _settingsPresenter.ActionFailed += OnActionFailed;

            _unsyncedPresenter = unsyncedPresenter;
            _unsyncedPresenter.ActionFailed += OnActionFailed;

            _folderBrowserFactory = folderBrowserFactory;
            _providerFactory = providerFactory;
            _branchesPresenter.BranchChanged += _branchesPresenter_BranchChanged;

            _loginView = loginView;
            _loginView.Confirm += _loginView_Confirm;

            _failedMessageView = failedMessageView;
            _failedMessageView.DismissSecondaryPanel += DismissSecondaryPanel;

            _view = view;
            _view.SecondaryPanel = _failedMessageView;

            _view.RefreshData += OnRefreshChildren;
            _view.OpenWorkingDirectory += OnOpenWorkingDirectory;
            _view.InitializeNewRepository += OnInitNewRepository;
        }
        public SourceControlPanel(IBranchesView branchesView, IChangesView changesView, IUnsyncedCommitsView commitsView, ISettingsView settingsView, IFailedMessageView failedActionView)
            :this()
        {
            SecondaryPanelVisible = false;

            ((Control)branchesView).Dock = DockStyle.Fill;
            ((Control)changesView).Dock = DockStyle.Fill;
            ((Control)commitsView).Dock = DockStyle.Fill;
            ((Control)settingsView).Dock = DockStyle.Fill;

            ((Control)failedActionView).Dock = DockStyle.Fill;

            this.BranchesTab.Controls.Add((Control)branchesView);
            this.ChangesTab.Controls.Add((Control)changesView);
            this.UnsyncedCommitsTab.Controls.Add((Control)commitsView);
            this.SettingsTab.Controls.Add((Control)settingsView);

            this.MainContainer.Panel1.Controls.Add((Control)failedActionView);

            SetText();
        }
        public SourceControlPanel(IBranchesView branchesView, IChangesView changesView, IUnsyncedCommitsView commitsView, ISettingsView settingsView, IFailedMessageView failedActionView)
            : this()
        {
            SecondaryPanelVisible = false;

            ((Control)branchesView).Dock = DockStyle.Fill;
            ((Control)changesView).Dock  = DockStyle.Fill;
            ((Control)commitsView).Dock  = DockStyle.Fill;
            ((Control)settingsView).Dock = DockStyle.Fill;

            ((Control)failedActionView).Dock = DockStyle.Fill;

            this.BranchesTab.Controls.Add((Control)branchesView);
            this.ChangesTab.Controls.Add((Control)changesView);
            this.UnsyncedCommitsTab.Controls.Add((Control)commitsView);
            this.SettingsTab.Controls.Add((Control)settingsView);

            this.MainContainer.Panel1.Controls.Add((Control)failedActionView);

            SetText();
        }