Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs =================================================================== diff -u -r2d36ffab7227ac916cbf278644023a95fa21d1e7 -r2b1d7f5ea7b96e5b44b462fa85ce5661ba1a4121 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 2d36ffab7227ac916cbf278644023a95fa21d1e7) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 2b1d7f5ea7b96e5b44b462fa85ce5661ba1a4121) @@ -60,7 +60,7 @@ failureMechanismObserver = new Observer(UpdataDataGridViewDataSource); failureMechanismSectionResultObserver = new RecursiveObserver(RefreshDataGridView, mechanism => mechanism.SectionResults); - calculationScenarioObserver = new RecursiveObserver(RefreshDataGridView, mechanism => mechanism.SectionResults.Select(sr => sr.CalculationScenarios)); + calculationScenarioObserver = new RecursiveObserver(UpdataDataGridViewDataSource, mechanism => mechanism.SectionResults.Select(sr => sr.CalculationScenarios)); Load += OnLoad; } @@ -176,7 +176,7 @@ column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; } - } + } private void UpdataDataGridViewDataSource() { @@ -268,14 +268,16 @@ { get { - if (failureMechanismSectionResult.CalculationScenarios.Any() && Math.Abs(failureMechanismSectionResult.TotalContribution - 1.0) > tolerance) + var relevantScenarios = failureMechanismSectionResult.CalculationScenarios.Where(cs => cs.IsRelevant).ToList(); + + if (relevantScenarios.Any() && Math.Abs(failureMechanismSectionResult.TotalContribution - 1.0) > tolerance) { return double.NaN.ToString(CultureInfo.InvariantCulture); } var layerTwoA = failureMechanismSectionResult.AssessmentLayerTwoA; - if (!failureMechanismSectionResult.CalculationScenarios.Any() || !layerTwoA.HasValue || double.IsNaN(layerTwoA.Value)) + if (!relevantScenarios.Any() || !layerTwoA.HasValue || double.IsNaN(layerTwoA.Value)) { return Resources.FailureMechanismSectionResultRow_AssessmentLayerTwoA_No_result_dash; } @@ -353,13 +355,15 @@ { FailureMechanismSectionResult rowObject = resultRow.failureMechanismSectionResult; - if (rowObject.AssessmentLayerOne) + var relevantScenarios = rowObject.CalculationScenarios.Where(cs => cs.IsRelevant).ToList(); + + if (rowObject.AssessmentLayerOne || !relevantScenarios.Any()) { dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = string.Empty; return; } - if (rowObject.CalculationScenarios.Any() && Math.Abs(rowObject.TotalContribution - 1.0) > tolerance) + if (relevantScenarios.Any() && Math.Abs(rowObject.TotalContribution - 1.0) > tolerance) { dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = Resources.FailureMechanismResultView_DataGridViewCellFormatting_Scenario_contribution_for_this_section_not_100; return; Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs =================================================================== diff -u -rf7a9f7239374705ff1d732e9666c0cb62ebaafd0 -r2b1d7f5ea7b96e5b44b462fa85ce5661ba1a4121 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision f7a9f7239374705ff1d732e9666c0cb62ebaafd0) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 2b1d7f5ea7b96e5b44b462fa85ce5661ba1a4121) @@ -495,6 +495,39 @@ } [Test] + public void FailureMechanismResultView_NoCalculationScenariosRelevant_DoesNotShowErrorTooltip() + { + // Setup + var mocks = new MockRepository(); + var calculationScenarioMock = mocks.StrictMock(); + calculationScenarioMock.Expect(cs => cs.Contribution).Return((RoundedDouble)1.0).Repeat.Any(); + calculationScenarioMock.Expect(cs => cs.IsRelevant).Return(false).Repeat.Any(); + calculationScenarioMock.Expect(cs => cs.Probability).Return((RoundedDouble?)double.NaN).Repeat.Any(); + + mocks.ReplayAll(); + + var rowIndex = 0; + + using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + { + var sections = (List)view.Data; + sections[0].CalculationScenarios.Add(calculationScenarioMock); + + var gridTester = new ControlTester("dataGridView"); + var dataGridView = (DataGridView)gridTester.TheObject; + + DataGridViewCell dataGridViewCell = dataGridView.Rows[rowIndex].Cells[assessmentLayerTwoAIndex]; + + // Call + var formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. + + // Assert + Assert.AreEqual(string.Empty, dataGridViewCell.ErrorText); + Assert.AreEqual("-", formattedValue); + } + } + + [Test] public void FailureMechanismResultView_AssessmentLayerTrueAndAssessmentLayerTwoAHasError_DoesNotShowError() { // Setup Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -r2d36ffab7227ac916cbf278644023a95fa21d1e7 -r2b1d7f5ea7b96e5b44b462fa85ce5661ba1a4121 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 2d36ffab7227ac916cbf278644023a95fa21d1e7) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 2b1d7f5ea7b96e5b44b462fa85ce5661ba1a4121) @@ -723,7 +723,7 @@ { // Ensure combobox values are directly committed DataGridViewColumn currentColumn = dataGridView.Columns[dataGridView.CurrentCell.ColumnIndex]; - if (currentColumn is DataGridViewComboBoxColumn) + if (currentColumn is DataGridViewComboBoxColumn || currentColumn is DataGridViewCheckBoxColumn) { dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit); dataGridView.EndEdit();