Index: Riskeer/Common/src/Riskeer.Common.Forms/Builders/FailureMechanismSectionResultViewColumnBuilder.cs =================================================================== diff -u -r1c5b5905afe14e33c52d5d261eb920335ddf5d3e -r34ed39d44d950aa6b5ed13272555c86fc60f7df9 --- Riskeer/Common/src/Riskeer.Common.Forms/Builders/FailureMechanismSectionResultViewColumnBuilder.cs (.../FailureMechanismSectionResultViewColumnBuilder.cs) (revision 1c5b5905afe14e33c52d5d261eb920335ddf5d3e) +++ Riskeer/Common/src/Riskeer.Common.Forms/Builders/FailureMechanismSectionResultViewColumnBuilder.cs (.../FailureMechanismSectionResultViewColumnBuilder.cs) (revision 34ed39d44d950aa6b5ed13272555c86fc60f7df9) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2021. All rights reserved. +// Copyright (C) Stichting Deltares 2021. All rights reserved. // // This file is part of Riskeer. // @@ -171,6 +171,109 @@ #endregion + #region Further Analysis + + /// + /// Adds a column to the showing whether further analysis + /// is needed for the section result. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddFurtherAnalysisNeededColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + if (dataGridViewControl == null) + { + throw new ArgumentNullException(nameof(dataGridViewControl)); + } + + if (dataPropertyName == null) + { + throw new ArgumentNullException(nameof(dataPropertyName)); + } + + dataGridViewControl.AddCheckBoxColumn( + dataPropertyName, + Resources.FailureMechanismResultView_FurtherAnalysisNeeded_DisplayName); + } + + /// + /// Adds a column to the showing a + /// . + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddProbabilityRefinementTypeColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + if (dataGridViewControl == null) + { + throw new ArgumentNullException(nameof(dataGridViewControl)); + } + + if (dataPropertyName == null) + { + throw new ArgumentNullException(nameof(dataPropertyName)); + } + + IEnumerable> dataSource = CreateEnumDisplayWrappers(); + + dataGridViewControl.AddComboBoxColumn( + dataPropertyName, + Resources.FailureMechanismResultView_ProbabilityRefinementType_DisplayName, + dataSource, + nameof(EnumDisplayWrapper.Value), + nameof(EnumDisplayWrapper.DisplayName)); + } + + /// + /// Adds a column to the showing the refined probability per profile. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddRefinedProfileProbabilityColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + if (dataGridViewControl == null) + { + throw new ArgumentNullException(nameof(dataGridViewControl)); + } + + if (dataPropertyName == null) + { + throw new ArgumentNullException(nameof(dataPropertyName)); + } + + dataGridViewControl.AddTextBoxColumn( + dataPropertyName, + Resources.FailureMechanismResultView_RefinedProfileProbability_DisplayName); + } + + /// + /// Adds a column to the showing the refined probability per section. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddRefinedSectionProbabilityColumn(DataGridViewControl dataGridViewControl, string dataPropertyName) + { + if (dataGridViewControl == null) + { + throw new ArgumentNullException(nameof(dataGridViewControl)); + } + + if (dataPropertyName == null) + { + throw new ArgumentNullException(nameof(dataPropertyName)); + } + + dataGridViewControl.AddTextBoxColumn( + dataPropertyName, + Resources.FailureMechanismResultView_RefinedSectionProbability_DisplayName); + } + + #endregion + #region Assessment /// Index: Riskeer/Common/src/Riskeer.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -r1c5b5905afe14e33c52d5d261eb920335ddf5d3e -r34ed39d44d950aa6b5ed13272555c86fc60f7df9 --- Riskeer/Common/src/Riskeer.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1c5b5905afe14e33c52d5d261eb920335ddf5d3e) +++ Riskeer/Common/src/Riskeer.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 34ed39d44d950aa6b5ed13272555c86fc60f7df9) @@ -1820,6 +1820,15 @@ } /// + /// Looks up a localized string similar to Is vervolganalyse nodig. + /// + public static string FailureMechanismResultView_FurtherAnalysisNeeded_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_FurtherAnalysisNeeded_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to NVT - Niet Van Toepassing ///WVT - Wel Van Toepassing ///FV - Faalkans Verwaarloosbaar @@ -1887,6 +1896,35 @@ } /// + /// Looks up a localized string similar to Aanscherpen faalkans. + /// + public static string FailureMechanismResultView_ProbabilityRefinementType_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_ProbabilityRefinementType_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Aangescherpte faalkans per doorsnede + ///[1/jaar]. + /// + public static string FailureMechanismResultView_RefinedProfileProbability_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_RefinedProfileProbability_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Aangescherpte faalkans per vak + ///[1/jaar]. + /// + public static string FailureMechanismResultView_RefinedSectionProbability_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_RefinedSectionProbability_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Toetsoordeel ///eenvoudige toets. /// Index: Riskeer/Common/src/Riskeer.Common.Forms/Properties/Resources.resx =================================================================== diff -u -r1c5b5905afe14e33c52d5d261eb920335ddf5d3e -r34ed39d44d950aa6b5ed13272555c86fc60f7df9 --- Riskeer/Common/src/Riskeer.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 1c5b5905afe14e33c52d5d261eb920335ddf5d3e) +++ Riskeer/Common/src/Riskeer.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 34ed39d44d950aa6b5ed13272555c86fc60f7df9) @@ -1602,4 +1602,18 @@ Faalkans initieel faalmechanisme per vak [1/jaar] + + Is vervolganalyse nodig + + + Aanscherpen faalkans + + + Aangescherpte faalkans per doorsnede +[1/jaar] + + + Aangescherpte faalkans per vak +[1/jaar] + \ No newline at end of file Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Builders/FailureMechanismSectionResultViewColumnBuilderTest.cs =================================================================== diff -u -r1c5b5905afe14e33c52d5d261eb920335ddf5d3e -r34ed39d44d950aa6b5ed13272555c86fc60f7df9 --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Builders/FailureMechanismSectionResultViewColumnBuilderTest.cs (.../FailureMechanismSectionResultViewColumnBuilderTest.cs) (revision 1c5b5905afe14e33c52d5d261eb920335ddf5d3e) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Builders/FailureMechanismSectionResultViewColumnBuilderTest.cs (.../FailureMechanismSectionResultViewColumnBuilderTest.cs) (revision 34ed39d44d950aa6b5ed13272555c86fc60f7df9) @@ -321,6 +321,210 @@ #endregion + #region Further Analysis + + [Test] + public void AddFurtherAnalysisNeededColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddFurtherAnalysisNeededColumn(null, "property"); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddFurtherAnalysisNeededColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddFurtherAnalysisNeededColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddFurtherAnalysisNeededColumn_WithParameters_AddsColumnToDataGridViewControl() + { + // Setup + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(0, dataGridView.ColumnCount); + + // Call + FailureMechanismSectionResultViewColumnBuilder.AddFurtherAnalysisNeededColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewCheckBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Is vervolganalyse nodig", columnData.HeaderText); + Assert.IsFalse(columnData.ReadOnly); + } + } + + [Test] + public void AddProbabilityRefinementTypeColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddProbabilityRefinementTypeColumn(null, "property"); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddProbabilityRefinementTypeColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddProbabilityRefinementTypeColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddProbabilityRefinementTypeColumn_WithParameters_AddsColumnToDataGridViewControl() + { + // Setup + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(0, dataGridView.ColumnCount); + + // Call + FailureMechanismSectionResultViewColumnBuilder.AddProbabilityRefinementTypeColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewComboBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Aanscherpen faalkans", columnData.HeaderText); + Assert.AreEqual("Value", columnData.ValueMember); + Assert.AreEqual("DisplayName", columnData.DisplayMember); + + IEnumerable> expectedDataSource = CreateExpectedEnumDisplayWrappers(); + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); + } + } + + [Test] + public void AddRefinedProfileProbabilityColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddRefinedProfileProbabilityColumn(null, "property"); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddRefinedProfileProbabilityColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddRefinedProfileProbabilityColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddRefinedProfileProbabilityColumn_WithParameters_AddsColumnToDataGridViewControl() + { + // Setup + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(0, dataGridView.ColumnCount); + + // Call + FailureMechanismSectionResultViewColumnBuilder.AddRefinedProfileProbabilityColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewTextBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Aangescherpte faalkans per doorsnede\r\n[1/jaar]", columnData.HeaderText); + Assert.IsFalse(columnData.ReadOnly); + } + } + + [Test] + public void AddRefinedSectionProbabilityColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddRefinedSectionProbabilityColumn(null, "property"); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddRefinedSectionProbabilityColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + void Call() => FailureMechanismSectionResultViewColumnBuilder.AddRefinedSectionProbabilityColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddRefinedSectionProbabilityColumn_WithParameters_AddsColumnToDataGridViewControl() + { + // Setup + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + // Precondition + Assert.AreEqual(0, dataGridView.ColumnCount); + + // Call + FailureMechanismSectionResultViewColumnBuilder.AddRefinedSectionProbabilityColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewTextBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Aangescherpte faalkans per vak\r\n[1/jaar]", columnData.HeaderText); + Assert.IsFalse(columnData.ReadOnly); + } + } + + #endregion + #region Simple Assessment [Test]