Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs =================================================================== diff -u -rca412bcccda3727e4e066fd20f1911fe037b545c -rf536315fb0233c46461380a38e856f3ddcb43f7e --- Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs (.../FailureMechanismSectionResultColumnBuilder.cs) (revision ca412bcccda3727e4e066fd20f1911fe037b545c) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Builders/FailureMechanismSectionResultColumnBuilder.cs (.../FailureMechanismSectionResultColumnBuilder.cs) (revision f536315fb0233c46461380a38e856f3ddcb43f7e) @@ -24,6 +24,7 @@ using System.Linq; using Core.Common.Controls.DataGrid; using Core.Common.Util; +using Ringtoets.AssemblyTool.Data; using Ringtoets.Common.Forms.Properties; using Ringtoets.Common.Primitives; @@ -255,6 +256,87 @@ Resources.FailureMechanismResultView_TailorMadeAssessmentAssembly_DisplayName); } + /// + /// Adds a column to the showing the + /// combined assessment assembly group. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddCombinedAssessmentAssemblyColumn(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_CombinedAssembly_DisplayName); + } + #endregion + + #region Override Assembly + + /// + /// Adds a column to the showing the + /// checkbox for the combined assembly overriding. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddOverrideAssemblyColumn(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_OverrideAssembly_DisplayName); + } + + /// + /// Adds a column to the showing the + /// overridden combined assembly group. + /// + /// The to add the column to. + /// The data property name of the column. + /// Thrown when any parameter is null. + public static void AddOverrideAssemblyGroupColumn(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_OverrideAssemblyGroup_DisplayName, + dataSource, + nameof(EnumDisplayWrapper.Value), + nameof(EnumDisplayWrapper.DisplayName)); + } + + #endregion } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -rca412bcccda3727e4e066fd20f1911fe037b545c -rf536315fb0233c46461380a38e856f3ddcb43f7e --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ca412bcccda3727e4e066fd20f1911fe037b545c) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision f536315fb0233c46461380a38e856f3ddcb43f7e) @@ -1369,6 +1369,16 @@ } /// + /// Looks up a localized string similar to Assemblageresultaat + ///gecombineerd. + /// + public static string FailureMechanismResultView_CombinedAssembly_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_CombinedAssembly_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Alle berekeningen voor dit vak moeten een geldige uitkomst hebben.. /// public static string FailureMechanismResultView_DataGridViewCellFormatting_All_calculations_must_have_valid_output { @@ -1465,7 +1475,26 @@ } /// + /// Looks up a localized string similar to Overschrijf assemblageresultaat. + /// + public static string FailureMechanismResultView_OverrideAssembly_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_OverrideAssembly_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Assemblageresultaat + ///handmatig. + /// + public static string FailureMechanismResultView_OverrideAssemblyGroup_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismResultView_OverrideAssemblyGroup_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assemblageresultaat ///eenvoudige toets. /// public static string FailureMechanismResultView_SimpleAssessmentAssembly_DisplayName { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -rca412bcccda3727e4e066fd20f1911fe037b545c -rf536315fb0233c46461380a38e856f3ddcb43f7e --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision ca412bcccda3727e4e066fd20f1911fe037b545c) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision f536315fb0233c46461380a38e856f3ddcb43f7e) @@ -239,13 +239,24 @@ eenvoudige toets - Assemblageresultaat + Assemblageresultaat gedetailleerde toets per vak - Assemblageresultaat + Assemblageresultaat toets op maat + + Assemblageresultaat +gecombineerd + + + Overschrijf assemblageresultaat + + + Assemblageresultaat +handmatig + Vak Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj =================================================================== diff -u -ra0cc5b43d22f89e997877215a505f6fab58aa70b -rf536315fb0233c46461380a38e856f3ddcb43f7e --- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision a0cc5b43d22f89e997877215a505f6fab58aa70b) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision f536315fb0233c46461380a38e856f3ddcb43f7e) @@ -343,6 +343,10 @@ Core.Components.Stack False + + {420ED9C3-0C33-47EA-B893-121A9C0DB4F1} + Ringtoets.AssemblyTool.Data + {888d4097-8bc2-4703-9fb1-8744c94d525e} Ringtoets.HydraRing.Calculation Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs =================================================================== diff -u -rca412bcccda3727e4e066fd20f1911fe037b545c -rf536315fb0233c46461380a38e856f3ddcb43f7e --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs (.../FailureMechanismSectionResultColumnBuilderTest.cs) (revision ca412bcccda3727e4e066fd20f1911fe037b545c) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Builders/FailureMechanismSectionResultColumnBuilderTest.cs (.../FailureMechanismSectionResultColumnBuilderTest.cs) (revision f536315fb0233c46461380a38e856f3ddcb43f7e) @@ -27,6 +27,7 @@ using Core.Common.Util; using NUnit.Extensions.Forms; using NUnit.Framework; +using Ringtoets.AssemblyTool.Data; using Ringtoets.Common.Forms.Builders; using Ringtoets.Common.Primitives; @@ -35,6 +36,8 @@ [TestFixture] public class FailureMechanismSectionResultColumnBuilderTest { + private const string dataPropertyName = "test property"; + private static IEnumerable> CreateExpectedEnumDisplayWrappers() { return Enum.GetValues(typeof(T)) @@ -43,6 +46,19 @@ .ToArray(); } + private static void AssertEnumDisplayWrappersAreEqual(IEnumerable> expected, + IEnumerable> actual) + { + Assert.AreEqual(expected.Count(), actual.Count()); + for (var i = 0; i < expected.Count(); i++) + { + EnumDisplayWrapper expectedWrapper = expected.ElementAt(i); + EnumDisplayWrapper actualWrapper = actual.ElementAt(i); + Assert.AreEqual(expectedWrapper.Value, actualWrapper.Value); + Assert.AreEqual(expectedWrapper.DisplayName, actualWrapper.DisplayName); + } + } + #region Simple Assessment [Test] @@ -71,8 +87,6 @@ public void AddSimpleAssessmentResultColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -96,16 +110,7 @@ Assert.AreEqual("DisplayName", columnData.DisplayMember); IEnumerable> expectedDataSource = CreateExpectedEnumDisplayWrappers(); - var actualDataSource = (EnumDisplayWrapper[]) columnData.DataSource; - - Assert.AreEqual(expectedDataSource.Count(), actualDataSource.Length); - for (var i = 0; i < actualDataSource.Length; i++) - { - EnumDisplayWrapper expectedWrapper = expectedDataSource.ElementAt(i); - EnumDisplayWrapper actualWrapper = actualDataSource[i]; - Assert.AreEqual(expectedWrapper.Value, actualWrapper.Value); - Assert.AreEqual(expectedWrapper.DisplayName, actualWrapper.DisplayName); - } + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); } } @@ -139,8 +144,6 @@ public void AddDetailedAssessmentResultColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -164,16 +167,7 @@ Assert.AreEqual("DisplayName", columnData.DisplayMember); IEnumerable> expectedDataSource = CreateExpectedEnumDisplayWrappers(); - var actualDataSource = (EnumDisplayWrapper[]) columnData.DataSource; - - Assert.AreEqual(expectedDataSource.Count(), actualDataSource.Length); - for (var i = 0; i < actualDataSource.Length; i++) - { - EnumDisplayWrapper expectedWrapper = expectedDataSource.ElementAt(i); - EnumDisplayWrapper actualWrapper = actualDataSource[i]; - Assert.AreEqual(expectedWrapper.Value, actualWrapper.Value); - Assert.AreEqual(expectedWrapper.DisplayName, actualWrapper.DisplayName); - } + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); } } @@ -203,8 +197,6 @@ public void AddDetailedAssessmentProbabilityColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -257,8 +249,6 @@ public void AddTailorMadeAssessmentResultColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -282,16 +272,7 @@ Assert.AreEqual("DisplayName", columnData.DisplayMember); IEnumerable> expectedDataSource = CreateExpectedEnumDisplayWrappers(); - var actualDataSource = (EnumDisplayWrapper[]) columnData.DataSource; - - Assert.AreEqual(expectedDataSource.Count(), actualDataSource.Length); - for (var i = 0; i < actualDataSource.Length; i++) - { - EnumDisplayWrapper expectedWrapper = expectedDataSource.ElementAt(i); - EnumDisplayWrapper actualWrapper = actualDataSource[i]; - Assert.AreEqual(expectedWrapper.Value, actualWrapper.Value); - Assert.AreEqual(expectedWrapper.DisplayName, actualWrapper.DisplayName); - } + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); } } @@ -321,8 +302,6 @@ public void AddTailorMadeAssessmentProbabilityColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -375,8 +354,6 @@ public void AddSimpleAssessmentAssemblyColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -425,8 +402,6 @@ public void AddDetailedAssessmentAssemblyColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -475,8 +450,6 @@ public void AddTailorMadeAssessmentAssemblyColumn_WithParameters_AddsColumnToDataGridViewControl() { // Setup - const string dataPropertyName = "test property"; - using (var form = new Form()) using (var control = new DataGridViewControl()) { @@ -499,6 +472,160 @@ } } + [Test] + public void AddCombinedAssessmentAssemblyColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddCombinedAssessmentAssemblyColumn(null, "property"); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddCombinedAssessmentAssemblyColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddCombinedAssessmentAssemblyColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddCombinedAssessmentAssemblyColumn_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 + FailureMechanismSectionResultColumnBuilder.AddCombinedAssessmentAssemblyColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewTextBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Assemblageresultaat\r\ngecombineerd", columnData.HeaderText); + } + } + #endregion + + #region Override Assembly + + [Test] + public void AddOverrideAssemblyColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddOverrideAssemblyColumn(null, "property"); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddOverrideAssemblyColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddOverrideAssemblyColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddOverrideAssemblyColumn_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 + FailureMechanismSectionResultColumnBuilder.AddOverrideAssemblyColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewCheckBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Overschrijf assemblageresultaat", columnData.HeaderText); + } + } + + [Test] + public void AddOverrideAssemblyGroupColumn_DataGridViewControlNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddOverrideAssemblyGroupColumn(null, "property"); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataGridViewControl", exception.ParamName); + } + + [Test] + public void AddOverrideAssemblyGroupColumn_DataPropertyNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => FailureMechanismSectionResultColumnBuilder.AddOverrideAssemblyGroupColumn(new DataGridViewControl(), null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("dataPropertyName", exception.ParamName); + } + + [Test] + public void AddOverrideAssemblyGroupColumn_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 + FailureMechanismSectionResultColumnBuilder.AddOverrideAssemblyGroupColumn(control, dataPropertyName); + + // Assert + Assert.AreEqual(1, dataGridView.ColumnCount); + + var columnData = (DataGridViewComboBoxColumn) dataGridView.Columns[0]; + Assert.AreEqual(dataPropertyName, columnData.DataPropertyName); + Assert.AreEqual("Assemblageresultaat\r\nhandmatig", columnData.HeaderText); + Assert.AreEqual("Value", columnData.ValueMember); + Assert.AreEqual("DisplayName", columnData.DisplayMember); + + IEnumerable> expectedDataSource = + CreateExpectedEnumDisplayWrappers(); + AssertEnumDisplayWrappersAreEqual(expectedDataSource, (EnumDisplayWrapper[]) columnData.DataSource); + } + } + + #endregion } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj =================================================================== diff -u -ra0cc5b43d22f89e997877215a505f6fab58aa70b -rf536315fb0233c46461380a38e856f3ddcb43f7e --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision a0cc5b43d22f89e997877215a505f6fab58aa70b) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision f536315fb0233c46461380a38e856f3ddcb43f7e) @@ -227,6 +227,10 @@ {0500CA45-1791-4C91-9243-EF95567068A3} Core.Components.GraphSharp.TestUtil + + {420ED9C3-0C33-47EA-B893-121A9C0DB4F1} + Ringtoets.AssemblyTool.Data + {888D4097-8BC2-4703-9FB1-8744C94D525E} Ringtoets.HydraRing.Calculation