Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/FailureMechanismResultView.cs
===================================================================
diff -u -rfba3c3273eae5061e1a2bf8ee19623367c885650 -r497db346515fa2044048eb7ec41f76627bab5a4d
--- Riskeer/Common/src/Riskeer.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision fba3c3273eae5061e1a2bf8ee19623367c885650)
+++ Riskeer/Common/src/Riskeer.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 497db346515fa2044048eb7ec41f76627bab5a4d)
@@ -163,7 +163,7 @@
///
/// Updates the internal data in the view.
///
- protected void UpdateInternalViewData()
+ protected virtual void UpdateInternalViewData()
{
UpdateDataGridViewDataSource();
UpdateAssemblyData();
Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs
===================================================================
diff -u -rb2a84d4ad12dde705c07722ef9c264b268bec879 -r497db346515fa2044048eb7ec41f76627bab5a4d
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs (.../GrassCoverErosionInwardsFailureMechanismResultView.cs) (revision b2a84d4ad12dde705c07722ef9c264b268bec879)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs (.../GrassCoverErosionInwardsFailureMechanismResultView.cs) (revision 497db346515fa2044048eb7ec41f76627bab5a4d)
@@ -93,6 +93,12 @@
};
}
+ protected override void UpdateInternalViewData()
+ {
+ UpdateVisibility();
+ base.UpdateInternalViewData();
+ }
+
protected override AdoptableWithProfileProbabilityFailureMechanismSectionResultRow CreateFailureMechanismSectionResultRow(
AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult)
{
@@ -190,6 +196,17 @@
nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.AssemblyGroup));
}
+ private void UpdateVisibility()
+ {
+ bool useLengthEffect = FailureMechanism.GeneralInput.ApplyLengthEffectInSection;
+
+ DataGridViewControl.GetColumnFromIndex(initialFailureMechanismResultProfileProbabilityIndex).Visible = useLengthEffect;
+ DataGridViewControl.GetColumnFromIndex(probabilityRefinementTypeIndex).Visible = useLengthEffect;
+ DataGridViewControl.GetColumnFromIndex(refinedProfileProbabilityIndex).Visible = useLengthEffect;
+ DataGridViewControl.GetColumnFromIndex(profileProbabilityIndex).Visible = useLengthEffect;
+ DataGridViewControl.GetColumnFromIndex(sectionNIndex).Visible = useLengthEffect;
+ }
+
private GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy CreateCalculateStrategy(
AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
IEnumerable calculationScenarios)
Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismResultViewTest.cs
===================================================================
diff -u -r5ff5db30cf8971a12212d5b48062ab2541a356b8 -r497db346515fa2044048eb7ec41f76627bab5a4d
--- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismResultViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismResultViewTest.cs) (revision 5ff5db30cf8971a12212d5b48062ab2541a356b8)
+++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismResultViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismResultViewTest.cs) (revision 497db346515fa2044048eb7ec41f76627bab5a4d)
@@ -110,11 +110,21 @@
}
[Test]
- public void GivenFormWithMacroStabilityInwardsFailureMechanismResultView_ThenExpectedColumnsAreVisible()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void GivenFormWithMacroStabilityInwardsFailureMechanismResultView_ThenExpectedColumnsAreVisible(bool useLengthEffect)
{
// Given
+ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism
+ {
+ GeneralInput =
+ {
+ ApplyLengthEffectInSection = useLengthEffect
+ }
+ };
+
using (new AssemblyToolCalculatorFactoryConfig())
- using (ShowFailureMechanismResultsView(new GrassCoverErosionInwardsFailureMechanism()))
+ using (ShowFailureMechanismResultsView(failureMechanism))
{
// Then
DataGridView dataGridView = GetDataGridView();
@@ -162,6 +172,12 @@
Assert.IsTrue(dataGridView.Columns[sectionProbabilityIndex].ReadOnly);
Assert.IsTrue(dataGridView.Columns[sectionNIndex].ReadOnly);
Assert.IsTrue(dataGridView.Columns[assemblyGroupIndex].ReadOnly);
+
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[initialFailureMechanismResultProfileProbabilityIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[probabilityRefinementTypeIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[refinedProfileProbabilityIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[profileProbabilityIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[sectionNIndex].Visible);
}
}
@@ -322,6 +338,57 @@
}
}
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void GivenGrassCoverErosionInwardsFailureMechanismResultView_WhenApplyLengthEffectChangedAndFailureMechanismObserversNotified_ThenDataGridViewUpdated(
+ bool useLengthEffect)
+ {
+ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism
+ {
+ GeneralInput =
+ {
+ ApplyLengthEffectInSection = !useLengthEffect
+ }
+ };
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1");
+ FailureMechanismTestHelper.SetSections(failureMechanism, new[]
+ {
+ section
+ });
+
+ GrassCoverErosionInwardsCalculationScenario calculationScenario = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateGrassCoverErosionInwardsCalculationScenario(section);
+ failureMechanism.CalculationsGroup.Children.Add(calculationScenario);
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ using (ShowFailureMechanismResultsView(failureMechanism))
+ {
+ var rowsChanged = false;
+ DataGridView dataGridView = GetDataGridView();
+ dataGridView.Rows.CollectionChanged += (sender, args) => rowsChanged = true;
+
+ // Precondition
+ Assert.IsFalse(rowsChanged);
+ Assert.AreEqual(!useLengthEffect, dataGridView.Columns[initialFailureMechanismResultProfileProbabilityIndex].Visible);
+ Assert.AreEqual(!useLengthEffect, dataGridView.Columns[probabilityRefinementTypeIndex].Visible);
+ Assert.AreEqual(!useLengthEffect, dataGridView.Columns[refinedProfileProbabilityIndex].Visible);
+ Assert.AreEqual(!useLengthEffect, dataGridView.Columns[profileProbabilityIndex].Visible);
+ Assert.AreEqual(!useLengthEffect, dataGridView.Columns[sectionNIndex].Visible);
+
+ // When
+ failureMechanism.GeneralInput.ApplyLengthEffectInSection = useLengthEffect;
+ failureMechanism.NotifyObservers();
+
+ // Then
+ Assert.IsTrue(rowsChanged);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[initialFailureMechanismResultProfileProbabilityIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[probabilityRefinementTypeIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[refinedProfileProbabilityIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[profileProbabilityIndex].Visible);
+ Assert.AreEqual(useLengthEffect, dataGridView.Columns[sectionNIndex].Visible);
+ }
+ }
+
private static DataGridView GetDataGridView()
{
return (DataGridView) new ControlTester("dataGridView").TheObject;