Index: Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Forms/Views/ClosingStructuresCalculationsView.cs =================================================================== diff -u -r18597db78286d0d3a7f267b3c1546491487aa902 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Forms/Views/ClosingStructuresCalculationsView.cs (.../ClosingStructuresCalculationsView.cs) (revision 18597db78286d0d3a7f267b3c1546491487aa902) +++ Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Forms/Views/ClosingStructuresCalculationsView.cs (.../ClosingStructuresCalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -177,7 +177,7 @@ foreshoreProfilesObserver = new Observer(() => { PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); + UpdateComboBoxColumns(); UpdateGenerateCalculationsButtonState(); }) { @@ -221,9 +221,9 @@ #region Update combo box list items - protected override void UpdateColumns() + protected override void UpdateComboBoxColumns() { - base.UpdateColumns(); + base.UpdateComboBoxColumns(); UpdateForeshoreProfilesColumn(); } Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/CalculationsView.cs =================================================================== diff -u -rbe15aaeb0579324b4486a2816278c601bfea9523 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/Common/src/Riskeer.Common.Forms/Views/CalculationsView.cs (.../CalculationsView.cs) (revision be15aaeb0579324b4486a2816278c601bfea9523) +++ Riskeer/Common/src/Riskeer.Common.Forms/Views/CalculationsView.cs (.../CalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -40,7 +40,7 @@ /// Base view for configuring calculations. /// /// The type of calculation. - /// /// The type of the calculation input. + /// The type of the calculation input. /// The type of the calculation row. /// The type of the failure mechanism. public abstract partial class CalculationsView : UserControl, ISelectionProvider, IView @@ -189,6 +189,9 @@ /// protected abstract void GenerateCalculations(); + /// + /// Initializes the columns + /// protected virtual void InitializeDataGridView() { DataGridViewControl.CurrentRowChanged += DataGridViewOnCurrentRowChangedHandler; @@ -205,42 +208,71 @@ nameof(DataGridViewComboBoxItemWrapper.DisplayName)); } - private void UpdateDataGridViewDataSource() + /// + /// Initializes the observers. + /// + protected virtual void InitializeObservers() { - // Skip changes coming from the view itself - if (DataGridViewControl.IsCurrentCellInEditMode) + failureMechanismObserver = new Observer(UpdateSectionsListBox) { - DataGridViewControl.AutoResizeColumns(); - } - - if (!(listBox.SelectedItem is FailureMechanismSection failureMechanismSection)) + Observable = FailureMechanism + }; + hydraulicBoundaryLocationsObserver = new Observer(() => { - DataGridViewControl.SetDataSource(null); - return; - } + PrefillComboBoxListItemsAtColumnLevel(); + UpdateComboBoxColumns(); + }) + { + Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations + }; - IEnumerable lineSegments = Math2D.ConvertPointsToLineSegments(failureMechanismSection.Points); - IEnumerable calculations = calculationGroup - .GetCalculations() - .OfType() - .Where(cs => IsCalculationIntersectionWithReferenceLineInSection(cs, lineSegments)); - - PrefillComboBoxListItemsAtColumnLevel(); - - List dataSource = calculations.Select(CreateRow).ToList(); - DataGridViewControl.SetDataSource(dataSource); - DataGridViewControl.ClearCurrentCell(); - - UpdateColumns(); + // The concat is needed to observe the input of calculations in child groups. + inputObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))) + { + Observable = calculationGroup + }; + calculationObserver = new RecursiveObserver(() => DataGridViewControl.RefreshDataGridView(), pcg => pcg.Children) + { + Observable = calculationGroup + }; + calculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children) + { + Observable = calculationGroup + }; } + /// + /// Updates the state of the generate calculations button. + /// protected void UpdateGenerateCalculationsButtonState() { GenerateButton.Enabled = CanGenerateCalculations(); } + /// + /// Sets the items on the . + /// + /// The collection to set the items on. + /// The item to set on the collection. + protected static void SetItemsOnObjectCollection(DataGridViewComboBoxCell.ObjectCollection objectCollection, object[] comboBoxItems) + { + objectCollection.Clear(); + objectCollection.AddRange(comboBoxItems); + } + + /// + /// Updates the columns. + /// + protected virtual void UpdateComboBoxColumns() + { + UpdateSelectableHydraulicBoundaryLocationsColumn(); + } + #region Prefill combo box list items + /// + /// Pre fills the list items. + /// protected virtual void PrefillComboBoxListItemsAtColumnLevel() { var selectableHydraulicBoundaryLocationColumn = (DataGridViewComboBoxColumn) DataGridViewControl.GetColumnFromIndex(selectableHydraulicBoundaryLocationColumnIndex); @@ -257,40 +289,33 @@ #endregion - protected static void SetItemsOnObjectCollection(DataGridViewComboBoxCell.ObjectCollection objectCollection, object[] comboBoxItems) + private void UpdateDataGridViewDataSource() { - objectCollection.Clear(); - objectCollection.AddRange(comboBoxItems); - } - - protected virtual void InitializeObservers() - { - failureMechanismObserver = new Observer(UpdateSectionsListBox) + // Skip changes coming from the view itself + if (DataGridViewControl.IsCurrentCellInEditMode) { - Observable = FailureMechanism - }; - hydraulicBoundaryLocationsObserver = new Observer(() => - { - PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); - }) - { - Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations - }; + DataGridViewControl.AutoResizeColumns(); + } - // The concat is needed to observe the input of calculations in child groups. - inputObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))) + if (!(listBox.SelectedItem is FailureMechanismSection failureMechanismSection)) { - Observable = calculationGroup - }; - calculationObserver = new RecursiveObserver(() => DataGridViewControl.RefreshDataGridView(), pcg => pcg.Children) - { - Observable = calculationGroup - }; - calculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children) - { - Observable = calculationGroup - }; + DataGridViewControl.SetDataSource(null); + return; + } + + IEnumerable lineSegments = Math2D.ConvertPointsToLineSegments(failureMechanismSection.Points); + IEnumerable calculations = calculationGroup + .GetCalculations() + .OfType() + .Where(cs => IsCalculationIntersectionWithReferenceLineInSection(cs, lineSegments)); + + PrefillComboBoxListItemsAtColumnLevel(); + + List dataSource = calculations.Select(CreateRow).ToList(); + DataGridViewControl.SetDataSource(dataSource); + DataGridViewControl.ClearCurrentCell(); + + UpdateComboBoxColumns(); } private void InitializeListBox() @@ -310,11 +335,6 @@ } } - protected virtual void UpdateColumns() - { - UpdateSelectableHydraulicBoundaryLocationsColumn(); - } - #region HydraulicBoundaryLocations private void UpdateSelectableHydraulicBoundaryLocationsColumn() Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs =================================================================== diff -u -r18597db78286d0d3a7f267b3c1546491487aa902 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs (.../GrassCoverErosionInwardsCalculationsView.cs) (revision 18597db78286d0d3a7f267b3c1546491487aa902) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs (.../GrassCoverErosionInwardsCalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -171,7 +171,7 @@ dikeProfilesObserver = new Observer(() => { PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); + UpdateComboBoxColumns(); UpdateGenerateCalculationsButtonState(); }) { @@ -235,9 +235,9 @@ #region Update combo box list items - protected override void UpdateColumns() + protected override void UpdateComboBoxColumns() { - base.UpdateColumns(); + base.UpdateComboBoxColumns(); UpdateDikeProfilesColumn(); } Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresCalculationsView.cs =================================================================== diff -u -r18597db78286d0d3a7f267b3c1546491487aa902 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresCalculationsView.cs (.../HeightStructuresCalculationsView.cs) (revision 18597db78286d0d3a7f267b3c1546491487aa902) +++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresCalculationsView.cs (.../HeightStructuresCalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -170,7 +170,7 @@ foreshoreProfilesObserver = new Observer(() => { PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); + UpdateComboBoxColumns(); UpdateGenerateCalculationsButtonState(); }) { @@ -214,9 +214,9 @@ #region Update combo box list items - protected override void UpdateColumns() + protected override void UpdateComboBoxColumns() { - base.UpdateColumns(); + base.UpdateComboBoxColumns(); UpdateForeshoreProfilesColumn(); } Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsCalculationsView.cs =================================================================== diff -u -r18597db78286d0d3a7f267b3c1546491487aa902 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsCalculationsView.cs (.../MacroStabilityInwardsCalculationsView.cs) (revision 18597db78286d0d3a7f267b3c1546491487aa902) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsCalculationsView.cs (.../MacroStabilityInwardsCalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -170,7 +170,7 @@ stochasticSoilModelsObserver = new Observer(() => { PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); + UpdateComboBoxColumns(); UpdateGenerateCalculationsButtonState(); }) { @@ -184,9 +184,9 @@ }; } - protected override void UpdateColumns() + protected override void UpdateComboBoxColumns() { - base.UpdateColumns(); + base.UpdateComboBoxColumns(); UpdateStochasticSoilModelColumn(); UpdateStochasticSoilProfileColumn(); } Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -r18597db78286d0d3a7f267b3c1546491487aa902 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 18597db78286d0d3a7f267b3c1546491487aa902) +++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -192,7 +192,7 @@ stochasticSoilModelsObserver = new Observer(() => { PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); + UpdateComboBoxColumns(); UpdateGenerateCalculationsButtonState(); }) { @@ -206,9 +206,9 @@ }; } - protected override void UpdateColumns() + protected override void UpdateComboBoxColumns() { - base.UpdateColumns(); + base.UpdateComboBoxColumns(); UpdateStochasticSoilModelColumn(); UpdateStochasticSoilProfileColumn(); } Index: Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresCalculationsView.cs =================================================================== diff -u -r18597db78286d0d3a7f267b3c1546491487aa902 -r2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3 --- Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresCalculationsView.cs (.../StabilityPointStructuresCalculationsView.cs) (revision 18597db78286d0d3a7f267b3c1546491487aa902) +++ Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresCalculationsView.cs (.../StabilityPointStructuresCalculationsView.cs) (revision 2ce9847b42ca47fc9008c8c18f9158a4b83e0fb3) @@ -184,7 +184,7 @@ foreshoreProfilesObserver = new Observer(() => { PrefillComboBoxListItemsAtColumnLevel(); - UpdateColumns(); + UpdateComboBoxColumns(); UpdateGenerateCalculationsButtonState(); }) { @@ -228,9 +228,9 @@ #region Update combo box list items - protected override void UpdateColumns() + protected override void UpdateComboBoxColumns() { - base.UpdateColumns(); + base.UpdateComboBoxColumns(); UpdateForeshoreProfilesColumn(); }