Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs =================================================================== diff -u -r2e535021fed6facc28e4663d1d316f8241004e72 -rbf03ab28b463a11daa780ff36ee87777f8c43eff --- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision 2e535021fed6facc28e4663d1d316f8241004e72) +++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision bf03ab28b463a11daa780ff36ee87777f8c43eff) @@ -215,10 +215,18 @@ private void UpdateVisibility() { - radioButtonsPanel.Visible = failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.PerFailureMechanismSection; - dataGridViewControl.GetColumnFromIndex(failureProbabilityUpliftColumnIndex).Visible = failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic; - dataGridViewControl.GetColumnFromIndex(failureProbabilityHeaveColumnIndex).Visible = failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic; - dataGridViewControl.GetColumnFromIndex(failureProbabilitySellmeijerColumnIndex).Visible = failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic; + PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationTypeForSection = failureMechanism.ScenarioConfigurationsPerFailureMechanismSection + .First(sc => sc.Section == selectedFailureMechanismSection); + + bool perFailureMechanismSection = failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.PerFailureMechanismSection; + bool semiProbabilisticColumnsVisible = failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic + || perFailureMechanismSection + && scenarioConfigurationTypeForSection.ScenarioConfigurationType == PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic; + + radioButtonsPanel.Visible = perFailureMechanismSection; + dataGridViewControl.GetColumnFromIndex(failureProbabilityUpliftColumnIndex).Visible = semiProbabilisticColumnsVisible; + dataGridViewControl.GetColumnFromIndex(failureProbabilityHeaveColumnIndex).Visible = semiProbabilisticColumnsVisible; + dataGridViewControl.GetColumnFromIndex(failureProbabilitySellmeijerColumnIndex).Visible = semiProbabilisticColumnsVisible; } private void UpdateDataGridViewDataSource() Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs =================================================================== diff -u -r317f706374960c8be47bff9fdcc02ce53ff7180d -rbf03ab28b463a11daa780ff36ee87777f8c43eff --- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs (.../PipingScenariosViewTest.cs) (revision 317f706374960c8be47bff9fdcc02ce53ff7180d) +++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs (.../PipingScenariosViewTest.cs) (revision bf03ab28b463a11daa780ff36ee87777f8c43eff) @@ -29,6 +29,7 @@ using Core.Common.Controls.Views; using Core.Common.TestUtil; using Core.Common.Util; +using Core.Common.Util.Extensions; using NUnit.Extensions.Forms; using NUnit.Framework; using Rhino.Mocks; @@ -230,15 +231,23 @@ } [Test] - [TestCase(PipingScenarioConfigurationType.SemiProbabilistic, true)] - [TestCase(PipingScenarioConfigurationType.Probabilistic, false)] - public void Constructor_DataGridViewCorrectlyInitialized(PipingScenarioConfigurationType scenarioConfigurationType, bool semiProbabilisticColumnShouldBeVisible) + [TestCase(PipingScenarioConfigurationType.SemiProbabilistic, PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic, true)] + [TestCase(PipingScenarioConfigurationType.SemiProbabilistic, PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic, true)] + [TestCase(PipingScenarioConfigurationType.Probabilistic, PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic, false)] + [TestCase(PipingScenarioConfigurationType.Probabilistic, PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic, false)] + [TestCase(PipingScenarioConfigurationType.PerFailureMechanismSection, PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic, true)] + [TestCase(PipingScenarioConfigurationType.PerFailureMechanismSection, PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic, false)] + public void Constructor_FailureMechanismWithSections_DataGridViewCorrectlyInitialized(PipingScenarioConfigurationType scenarioConfigurationType, + PipingScenarioConfigurationPerFailureMechanismSectionType scenarioConfigurationPerFailureMechanismSectionType, + bool semiProbabilisticColumnsShouldBeVisible) { // Setup var failureMechanism = new PipingFailureMechanism { ScenarioConfigurationType = scenarioConfigurationType }; + ConfigureFailureMechanism(failureMechanism); + failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.ForEachElementDo(sc => sc.ScenarioConfigurationType = scenarioConfigurationPerFailureMechanismSectionType); // Call ShowPipingScenariosView(failureMechanism); @@ -255,9 +264,9 @@ Assert.AreEqual("Faalkans per doorsnede\r\n[1/jaar]", dataGridView.Columns[failureProbabilityPipingColumnIndex].HeaderText); Assert.AreEqual("Faalkans per vak\r\n[1/jaar]", dataGridView.Columns[sectionFailureProbabilityPipingColumnIndex].HeaderText); - Assert.AreEqual(semiProbabilisticColumnShouldBeVisible, dataGridView.Columns[failureProbabilityUpliftColumnIndex].Visible); - Assert.AreEqual(semiProbabilisticColumnShouldBeVisible, dataGridView.Columns[failureProbabilityHeaveColumnIndex].Visible); - Assert.AreEqual(semiProbabilisticColumnShouldBeVisible, dataGridView.Columns[failureProbabilitySellmeijerColumnIndex].Visible); + Assert.AreEqual(semiProbabilisticColumnsShouldBeVisible, dataGridView.Columns[failureProbabilityUpliftColumnIndex].Visible); + Assert.AreEqual(semiProbabilisticColumnsShouldBeVisible, dataGridView.Columns[failureProbabilityHeaveColumnIndex].Visible); + Assert.AreEqual(semiProbabilisticColumnsShouldBeVisible, dataGridView.Columns[failureProbabilitySellmeijerColumnIndex].Visible); } [Test] @@ -600,7 +609,7 @@ CollectionAssert.AreNotEquivalent(sectionResultRows, updatedRows); } - private void ShowFullyConfiguredPipingScenariosView(PipingFailureMechanism failureMechanism) + private void ConfigureFailureMechanism(PipingFailureMechanism failureMechanism) { var surfaceLine1 = new PipingSurfaceLine("Surface line 1") { @@ -680,7 +689,12 @@ Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(0.26065, 0.81398, 0.38024) } }); + } + private void ShowFullyConfiguredPipingScenariosView(PipingFailureMechanism failureMechanism) + { + ConfigureFailureMechanism(failureMechanism); + ShowPipingScenariosView(failureMechanism); }