public MainPresenter(MainGridModel mainGridModel, IMainView view, IMessagesView messagesView, IViewFactory viewFactory, IMessageBoxView messageBoxView, UserStatsDataModel userStatsDataModel, IPresenterFactory presenterFactory, IClientConfiguration clientConfiguration, IProteinService proteinService, IUpdateLogic updateLogic, RetrievalModel retrievalModel, IExternalProcessStarter processStarter, IPreferenceSet prefs, IClientSettingsManager settingsManager) { _gridModel = mainGridModel; //_gridModel.BeforeResetBindings += delegate { _view.DataGridView.FreezeSelectionChanged = true; }; _gridModel.AfterResetBindings += delegate { //_view.DataGridView.FreezeSelectionChanged = false; DisplaySelectedSlotData(); _view.RefreshControlsWithTotalsData(_gridModel.SlotTotals); }; _gridModel.SelectedSlotChanged += (sender, e) => { if (e.Index >= 0 && e.Index < _view.DataGridView.Rows.Count) { _view.DataGridView.Rows[e.Index].Selected = true; DisplaySelectedSlotData(); } }; _userStatsDataModel = userStatsDataModel; // Views _view = view; _messagesView = messagesView; _messageBoxView = messageBoxView; // _viewFactory = viewFactory; _presenterFactory = presenterFactory; // Collections _clientConfiguration = clientConfiguration; _proteinService = proteinService; // Logic Services _updateLogic = updateLogic; _updateLogic.Owner = _view; _retrievalModel = retrievalModel; _processStarter = processStarter; // Data Services _prefs = prefs; _settingsManager = settingsManager; _clientConfiguration.DictionaryChanged += delegate { AutoSaveConfig(); }; }
/// <summary> /// Main Form Constructor /// </summary> public MainForm(IPreferenceSet prefs, UserStatsDataModel userStatsDataModel) { _prefs = prefs; _userStatsDataModel = userStatsDataModel; // This call is Required by the Windows Form Designer InitializeComponent(); // Set Main Form Text #if BETA base.Text = String.Format("HFM.NET v{0} - Beta", Core.Application.Version); #else base.Text = String.Format("HFM.NET v{0}", Core.Application.Version); #endif }
private void BindToUserStatsDataModel(UserStatsDataModel userStatsDataModel) { statusUserTeamRank.DataBindings.Add("Text", userStatsDataModel, "Rank", false, DataSourceUpdateMode.OnPropertyChanged); statusUserProjectRank.DataBindings.Add("Text", userStatsDataModel, "OverallRank", false, DataSourceUpdateMode.OnPropertyChanged); statusUser24hr.DataBindings.Add("Text", userStatsDataModel, "TwentyFourHourAvgerage", false, DataSourceUpdateMode.OnPropertyChanged); statusUserToday.DataBindings.Add("Text", userStatsDataModel, "PointsToday", false, DataSourceUpdateMode.OnPropertyChanged); statusUserWeek.DataBindings.Add("Text", userStatsDataModel, "PointsWeek", false, DataSourceUpdateMode.OnPropertyChanged); statusUserTotal.DataBindings.Add("Text", userStatsDataModel, "PointsTotal", false, DataSourceUpdateMode.OnPropertyChanged); statusUserWUs.DataBindings.Add("Text", userStatsDataModel, "WorkUnitsTotal", false, DataSourceUpdateMode.OnPropertyChanged); statusUserTeamRank.DataBindings.Add("Visible", userStatsDataModel, "ControlsVisible", false, DataSourceUpdateMode.OnPropertyChanged); statusUserProjectRank.DataBindings.Add("Visible", userStatsDataModel, "OverallRankVisible", false, DataSourceUpdateMode.OnPropertyChanged); statusUser24hr.DataBindings.Add("Visible", userStatsDataModel, "ControlsVisible", false, DataSourceUpdateMode.OnPropertyChanged); statusUserToday.DataBindings.Add("Visible", userStatsDataModel, "ControlsVisible", false, DataSourceUpdateMode.OnPropertyChanged); statusUserWeek.DataBindings.Add("Visible", userStatsDataModel, "ControlsVisible", false, DataSourceUpdateMode.OnPropertyChanged); statusUserTotal.DataBindings.Add("Visible", userStatsDataModel, "ControlsVisible", false, DataSourceUpdateMode.OnPropertyChanged); statusUserWUs.DataBindings.Add("Visible", userStatsDataModel, "ControlsVisible", false, DataSourceUpdateMode.OnPropertyChanged); if (Core.Application.IsRunningOnMono) { userStatsDataModel.PropertyChanged += (s, e) => UserStatsDataModelPropertyChangedForMono(userStatsDataModel); } }
private void UserStatsDataModelPropertyChangedForMono(UserStatsDataModel userStatsDataModel) { statusUserTeamRank.Text = userStatsDataModel.Rank; statusUserProjectRank.Text = userStatsDataModel.OverallRank; statusUser24hr.Text = userStatsDataModel.TwentyFourHourAvgerage; statusUserToday.Text = userStatsDataModel.PointsToday; statusUserWeek.Text = userStatsDataModel.PointsWeek; statusUserTotal.Text = userStatsDataModel.PointsTotal; statusUserWUs.Text = userStatsDataModel.WorkUnitsTotal; statusUserTeamRank.Visible = userStatsDataModel.ControlsVisible; statusUserProjectRank.Visible = userStatsDataModel.OverallRankVisible; statusUser24hr.Visible = userStatsDataModel.ControlsVisible; statusUserToday.Visible = userStatsDataModel.ControlsVisible; statusUserWeek.Visible = userStatsDataModel.ControlsVisible; statusUserTotal.Visible = userStatsDataModel.ControlsVisible; statusUserWUs.Visible = userStatsDataModel.ControlsVisible; }
public void Initialize(MainPresenter presenter, IProteinService service, UserStatsDataModel userStatsDataModel) { _presenter = presenter; // Resize can be invoked when InitializeComponent() is called // if the DPI is not set to Normal (96 DPI). The MainFormResize // method depends on _presenter HAVING A VALUE. Wait to hook // up this event until after _presenter has been set (above). Resize += MainFormResize; #region Initialize Controls // Manually Create the Columns - Issue 41 dataGridView1.AutoGenerateColumns = false; SetupDataGridViewColumns(dataGridView1); // Add Column Selector new DataGridViewColumnSelector(dataGridView1); // Give the Queue Control access to the Protein Collection queueControl.SetProteinService(service); #endregion // Initialize the Presenter _presenter.Initialize(); BindToUserStatsDataModel(userStatsDataModel); // Hook-up Status Label Event Handlers SubscribeToStatsLabelEvents(); #region Hook-up DataGridView Event Handlers for Mono // If Mono, use the RowEnter Event (which was what 0.3.0 and prior used) // to set the CurrentInstance selection. Obviously Mono doesn't fire the // DataGridView.SelectionChanged Event. if (Core.Application.IsRunningOnMono) { //dataGridView1.RowEnter += delegate //{ // _presenter.SetSelectedInstance(GetSelectedRowInstanceName(dataGridView1.SelectedRows)); //}; //// Use RowLeave to clear data grid when selecting New file under Mono //dataGridView1.RowLeave += delegate //{ // _presenter.SetSelectedInstance(GetSelectedRowInstanceName(dataGridView1.SelectedRows)); //}; } #endregion }