Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs =================================================================== diff -u -r7f7ec6afaf51884d93fe292c6219a5440d1a7ccb -r4d27e3204b34978d3778b88a44566ba945de7e94 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs (.../ReferenceLineMetaSelectionDialog.cs) (revision 7f7ec6afaf51884d93fe292c6219a5440d1a7ccb) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs (.../ReferenceLineMetaSelectionDialog.cs) (revision 4d27e3204b34978d3778b88a44566ba945de7e94) @@ -52,6 +52,7 @@ } public ReferenceLineMeta SelectedReferenceLineMeta { get; private set; } + public int? SelectedLimitValue { get; private set; } protected override Button GetCancelButton() { @@ -62,6 +63,8 @@ private void OkButtonOnClick(object sender, EventArgs e) { + SelectedReferenceLineMeta = SelectionView.GetSelectedReferenceLineMeta(); + SelectedLimitValue = SelectionView.GetSelectedLimitValue(); Close(); } Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/ReferenceLineMetaSelectionView.cs =================================================================== diff -u -r74b9f5cca517fbccca3fe27bac059966233e432a -r4d27e3204b34978d3778b88a44566ba945de7e94 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/ReferenceLineMetaSelectionView.cs (.../ReferenceLineMetaSelectionView.cs) (revision 74b9f5cca517fbccca3fe27bac059966233e432a) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/ReferenceLineMetaSelectionView.cs (.../ReferenceLineMetaSelectionView.cs) (revision 4d27e3204b34978d3778b88a44566ba945de7e94) @@ -24,6 +24,7 @@ using System.Diagnostics; using System.Linq; using System.Windows.Forms; +using Core.Common.Utils.Reflection; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Integration.Forms.Properties; @@ -35,6 +36,12 @@ /// public partial class ReferenceLineMetaSelectionView { + private enum SignalingLowerLimit + { + SignalingValue, + LowerLimitValue + } + /// /// Creates a new instance of . /// @@ -47,20 +54,53 @@ } InitializeComponent(); - SignalingLowerLimitComboBox.DataSource = GetSignalingLowerLimitComboBoxDataSource(); + InitializeSignalingLowerLimitComboBox(); ReferenceLineMetaDataGrid.AutoGenerateColumns = false; ReferenceLineMetaDataGrid.DataSource = referenceLineMetas.Select(rlm => new ReferenceLineMetaSelectionRow(rlm)).ToArray(); } - private static IList GetSignalingLowerLimitComboBoxDataSource() + public ReferenceLineMeta GetSelectedReferenceLineMeta() { - var datasourceList = new List + var selectedRow = GetSelectedReferenceLineMetaSelectionRow(); + return selectedRow == null ? null : selectedRow.ReferenceLineMeta; + } + + public int? GetSelectedLimitValue() + { + var selectedRow = GetSelectedReferenceLineMetaSelectionRow(); + if (selectedRow == null) { - Resources.ReferenceLineMetaSelectionView_SignalingValue_DisplayName, - Resources.ReferenceLineMetaSelectionView_LowerLimitValue_DisplayName + return null; + } + + var selectedItemInComboBox = (SignalingLowerLimit)SignalingLowerLimitComboBox.SelectedValue; + return selectedItemInComboBox == SignalingLowerLimit.SignalingValue ? + selectedRow.SignalingValue : + selectedRow.LowerLimitValue; + } + + private ReferenceLineMetaSelectionRow GetSelectedReferenceLineMetaSelectionRow() + { + var selectedRows = ReferenceLineMetaDataGrid.SelectedRows; + if (selectedRows.Count == 0) + { + return null; + } + + var selectedRow = selectedRows[0]; + return (ReferenceLineMetaSelectionRow) selectedRow.DataBoundItem; + } + + private void InitializeSignalingLowerLimitComboBox() + { + SignalingLowerLimitComboBox.DataSource = new[] + { + Tuple.Create(SignalingLowerLimit.SignalingValue, Resources.ReferenceLineMetaSelectionView_SignalingValue_DisplayName), + Tuple.Create(SignalingLowerLimit.LowerLimitValue, Resources.ReferenceLineMetaSelectionView_LowerLimitValue_DisplayName) }; - return datasourceList; + SignalingLowerLimitComboBox.ValueMember = TypeUtils.GetMemberName>(t => t.Item1); + SignalingLowerLimitComboBox.DisplayMember = TypeUtils.GetMemberName>(t => t.Item2); } private void eventLog1_EntryWritten(object sender, EntryWrittenEventArgs e) {} Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs =================================================================== diff -u -r74b9f5cca517fbccca3fe27bac059966233e432a -r4d27e3204b34978d3778b88a44566ba945de7e94 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs (.../ReferenceLineMetaSelectionDialogTest.cs) (revision 74b9f5cca517fbccca3fe27bac059966233e432a) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs (.../ReferenceLineMetaSelectionDialogTest.cs) (revision 4d27e3204b34978d3778b88a44566ba945de7e94) @@ -68,5 +68,20 @@ Assert.AreEqual("Selecteer referentielijn", dialog.Text); } } + + [Test] + public void OnLoad_Always_SetMinimumSize() + { + // Setup + using (var dialog = new ReferenceLineMetaSelectionDialog(new Form(), Enumerable.Empty())) + { + // Call + dialog.Show(); + + // Assert + Assert.AreEqual(300, dialog.MinimumSize.Width); + Assert.AreEqual(400, dialog.MinimumSize.Height); + } + } } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/ReferenceLineMetaSelectionViewTest.cs =================================================================== diff -u -r74b9f5cca517fbccca3fe27bac059966233e432a -r4d27e3204b34978d3778b88a44566ba945de7e94 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/ReferenceLineMetaSelectionViewTest.cs (.../ReferenceLineMetaSelectionViewTest.cs) (revision 74b9f5cca517fbccca3fe27bac059966233e432a) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/ReferenceLineMetaSelectionViewTest.cs (.../ReferenceLineMetaSelectionViewTest.cs) (revision 4d27e3204b34978d3778b88a44566ba945de7e94) @@ -76,10 +76,6 @@ var signalingLowerLimitComboBox = (ComboBox) new ControlTester("SignalingLowerLimitComboBox").TheObject; Assert.AreEqual(2, signalingLowerLimitComboBox.Items.Count); - CollectionAssert.AreEqual(new[] - { - "Signaleringsnorm", "Ondergrens" - }, signalingLowerLimitComboBox.Items); var assessmentSectionIdColumn = (DataGridViewTextBoxColumn) referenceLineMetaDataGrid.Columns[assessmentSectionIdColumnIndex]; Assert.AreEqual("AssessmentSectionId", assessmentSectionIdColumn.DataPropertyName); @@ -124,6 +120,56 @@ Assert.AreEqual(referenceLineMeta.LowerLimitValue, (int) firstRow.Cells[lowerLimitColumnIndex].Value); } + [Test] + public void GetSelectedReferenceLineMeta_ReferenceLineMetaSelected_ReturnsReferenceLineMeta() + { + // Setup + ReferenceLineMeta referenceLineMeta = TestReferenceLineMeta(); + ReferenceLineMeta referenceLineMeta2 = TestReferenceLineMeta(); + + var view = new ReferenceLineMetaSelectionView(new[] + { + referenceLineMeta, + referenceLineMeta2 + }); + + ShowReferenceLineSelectionView(view); + + var referenceLineMetaDataGrid = (DataGridView) new ControlTester("ReferenceLineMetaDataGrid").TheObject; + referenceLineMetaDataGrid.Rows[0].Selected = true; + + // Call + ReferenceLineMeta selectedReferenceLineMeta = view.GetSelectedReferenceLineMeta(); + + // Assert + Assert.AreEqual(referenceLineMeta, selectedReferenceLineMeta); + } + + [Test] + [TestCase(0, 30000)] + [TestCase(1, 10000)] + public void GetSelectedLimitValue_ReferenceLineMetaSelected_ReturnsSelectedLimitValue(int selectedIndex, int expectedValue) + { + // Setup + ReferenceLineMeta referenceLineMeta = TestReferenceLineMeta(); + + var view = new ReferenceLineMetaSelectionView(new[] + { + referenceLineMeta + }); + + ShowReferenceLineSelectionView(view); + + var signalingLowerLimitComboBox = (ComboBox) new ControlTester("SignalingLowerLimitComboBox").TheObject; + signalingLowerLimitComboBox.SelectedIndex = selectedIndex; + + // Call + int? value = view.GetSelectedLimitValue(); + + // Assert + Assert.AreEqual(expectedValue, value); + } + private static ReferenceLineMeta TestReferenceLineMeta() { return new ReferenceLineMeta