Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -rb6d263f3f919ce64e84f4031b94a19e0995f202c -r47134c6560c0c969c184ab3bd3157fb06fb4d120
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision b6d263f3f919ce64e84f4031b94a19e0995f202c)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 47134c6560c0c969c184ab3bd3157fb06fb4d120)
@@ -99,7 +99,7 @@
}
///
- /// Looks up a localized string similar to Id.
+ /// Looks up a localized string similar to ID.
///
public static string AssessmentSection_Id_DisplayName {
get {
@@ -512,7 +512,7 @@
}
///
- /// Looks up a localized string similar to Identificatiecode.
+ /// Looks up a localized string similar to Traject ID.
///
public static string ReferenceLineMetaSelectionDialog_ColumnHeader_AssessmentSectionId {
get {
@@ -584,6 +584,15 @@
}
///
+ /// Looks up a localized string similar to Traject toevoegen.
+ ///
+ public static string RingtoetsRibbon_AddAssessmentSection {
+ get {
+ return ResourceManager.GetString("RingtoetsRibbon_AddAssessmentSection", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Hydraulische randvoorwaardendatabase.
///
public static string SelectHydraulicBoundaryDatabaseFile_FilterName {
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx
===================================================================
diff -u -rb6d263f3f919ce64e84f4031b94a19e0995f202c -r47134c6560c0c969c184ab3bd3157fb06fb4d120
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx (.../Resources.resx) (revision b6d263f3f919ce64e84f4031b94a19e0995f202c)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx (.../Resources.resx) (revision 47134c6560c0c969c184ab3bd3157fb06fb4d120)
@@ -252,13 +252,13 @@
Id van het traject.
- Id
+ ID
Signaleringswaarde
- Identificatiecode
+ Traject ID
Ondergrens
@@ -296,4 +296,7 @@
..\Resources\AddFolder-stand.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ Traject toevoegen
+
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs
===================================================================
diff -u -r04e456a3c39bc3a6e9c4cba357964aa9c83f258c -r47134c6560c0c969c184ab3bd3157fb06fb4d120
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs (.../ReferenceLineMetaSelectionDialog.cs) (revision 04e456a3c39bc3a6e9c4cba357964aa9c83f258c)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs (.../ReferenceLineMetaSelectionDialog.cs) (revision 47134c6560c0c969c184ab3bd3157fb06fb4d120)
@@ -21,11 +21,12 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
+using System.Text.RegularExpressions;
using System.Windows.Forms;
using Core.Common.Controls.DataGrid;
using Core.Common.Controls.Dialogs;
-using Core.Common.Utils.Reflection;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Integration.Forms.Properties;
using CommonFormsResources = Ringtoets.Common.Forms.Properties.Resources;
@@ -85,7 +86,9 @@
ReferenceLineMetaDataGridViewControl.AddTextBoxColumn("AssessmentSectionId", Resources.ReferenceLineMetaSelectionDialog_ColumnHeader_AssessmentSectionId);
ReferenceLineMetaDataGridViewControl.AddTextBoxColumn("SignalingValue", Resources.ReferenceLineMetaSelectionDialog_ColumnHeader_SignalingValue);
ReferenceLineMetaDataGridViewControl.AddTextBoxColumn("LowerLimitValue", Resources.ReferenceLineMetaSelectionDialog_ColumnHeader_LowerLimitValue);
- ReferenceLineMetaDataGridViewControl.SetDataSource(referenceLineMetas.Select(rlm => new ReferenceLineMetaSelectionRow(rlm)).ToArray());
+
+ var dataSource = referenceLineMetas.Select(rlm => new ReferenceLineMetaSelectionRow(rlm)).OrderBy(row => row.AssessmentSectionId, new AssessmentSectionIdComparer());
+ ReferenceLineMetaDataGridViewControl.SetDataSource(dataSource.ToArray());
}
private void OkButtonOnClick(object sender, EventArgs e)
@@ -130,5 +133,69 @@
public int? LowerLimitValue { get; private set; }
public ReferenceLineMeta ReferenceLineMeta { get; private set; }
}
+
+ private class AssessmentSectionIdComparer : IComparer
+ {
+ public int Compare(string x, string y)
+ {
+ int idX;
+ string suffixX;
+ int subX;
+
+ int idY;
+ string suffixY;
+ int subY;
+
+ SplitAssessmentSectionId(x, out idX, out suffixX, out subX);
+ SplitAssessmentSectionId(y, out idY, out suffixY, out subY);
+
+ if (idX != idY)
+ {
+ return idX - idY;
+ }
+
+ if (string.IsNullOrEmpty(suffixX) != string.IsNullOrEmpty(suffixY))
+ {
+ return string.IsNullOrEmpty(suffixX) ? -1 : 1;
+ }
+ if (!string.IsNullOrEmpty(suffixX) && suffixX != suffixY)
+ {
+ return string.Compare(suffixX, suffixY, StringComparison.Ordinal);
+ }
+ return subX - subY;
+ }
+
+ private static void SplitAssessmentSectionId(string str, out int id, out string suffix, out int sub)
+ {
+ if (string.IsNullOrEmpty(str))
+ {
+ id = 0;
+ sub = 0;
+ suffix = string.Empty;
+ return;
+ }
+ var parts = str.Split('-');
+ var firstPart = Regex.Split(parts.First(), "([A-Za-z])");
+ if (firstPart.Length > 1)
+ {
+ int.TryParse(firstPart[0], out id);
+ suffix = firstPart[1];
+ }
+ else
+ {
+ int.TryParse(parts[0], out id);
+ suffix = string.Empty;
+ }
+
+ if (parts.Length == 2)
+ {
+ int.TryParse(parts[1], out sub);
+ }
+ else
+ {
+ sub = 0;
+ }
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsRibbon.xaml
===================================================================
diff -u -rb6d263f3f919ce64e84f4031b94a19e0995f202c -r47134c6560c0c969c184ab3bd3157fb06fb4d120
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsRibbon.xaml (.../RingtoetsRibbon.xaml) (revision b6d263f3f919ce64e84f4031b94a19e0995f202c)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsRibbon.xaml (.../RingtoetsRibbon.xaml) (revision 47134c6560c0c969c184ab3bd3157fb06fb4d120)
@@ -15,7 +15,7 @@
-
+
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Commands/AssessmentSectionFromFileCommandHandlerTest.cs
===================================================================
diff -u -r51b7ca830473fab00ed10f5cb0ff845f6be7503f -r47134c6560c0c969c184ab3bd3157fb06fb4d120
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Commands/AssessmentSectionFromFileCommandHandlerTest.cs (.../AssessmentSectionFromFileCommandHandlerTest.cs) (revision 51b7ca830473fab00ed10f5cb0ff845f6be7503f)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Commands/AssessmentSectionFromFileCommandHandlerTest.cs (.../AssessmentSectionFromFileCommandHandlerTest.cs) (revision 47134c6560c0c969c184ab3bd3157fb06fb4d120)
@@ -428,7 +428,7 @@
var selectionDialog = (ReferenceLineMetaSelectionDialog) new FormTester(name).TheObject;
var grid = (DataGridViewControl) new ControlTester("ReferenceLineMetaDataGridViewControl", selectionDialog).TheObject;
var dataGridView = grid.Controls.OfType().First();
- dataGridView[0, 1].Selected = true;
+ dataGridView.Rows[1].Selected = true;
new ButtonTester("Ok", selectionDialog).Click();
};
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs
===================================================================
diff -u -r04e456a3c39bc3a6e9c4cba357964aa9c83f258c -r47134c6560c0c969c184ab3bd3157fb06fb4d120
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs (.../ReferenceLineMetaSelectionDialogTest.cs) (revision 04e456a3c39bc3a6e9c4cba357964aa9c83f258c)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs (.../ReferenceLineMetaSelectionDialogTest.cs) (revision 47134c6560c0c969c184ab3bd3157fb06fb4d120)
@@ -20,6 +20,7 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using Core.Common.Controls.DataGrid;
@@ -71,6 +72,74 @@
}
[Test]
+ public void Constructor_WithParentAndUnorderedReferenceLineMetas_ShowsOrderedGrid()
+ {
+ // Setup
+ var referenceLineMetas = new[]
+ {
+ new ReferenceLineMeta(),
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "101-10"
+ },
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "101b-1"
+ },
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "101-2"
+ },
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "101-1"
+ },
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "101a-1"
+ },
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "10"
+ },
+ new ReferenceLineMeta
+ {
+ AssessmentSectionId = "102-1"
+ }
+ };
+
+ // Call
+ using (var dialog = new ReferenceLineMetaSelectionDialog(new Form(), referenceLineMetas))
+ {
+ // Assert
+ DataGridViewControl grid = (DataGridViewControl) new ControlTester("ReferenceLineMetaDataGridViewControl", dialog).TheObject;
+ DataGridView dataGridView = grid.Controls.OfType().First();
+
+ var assessmentIdValuesInGrid = new List();
+ for (var i = 0; i < dataGridView.Rows.Count; i++)
+ {
+ var currentIdValue = dataGridView[0, i].FormattedValue;
+ if (currentIdValue != null)
+ {
+ assessmentIdValuesInGrid.Add(currentIdValue.ToString());
+ }
+ }
+
+ CollectionAssert.AreEqual(new[]
+ {
+ "",
+ "10",
+ "101-1",
+ "101-2",
+ "101-10",
+ "101a-1",
+ "101b-1",
+ "102-1"
+ }, assessmentIdValuesInGrid);
+ }
+ }
+
+ [Test]
public void OnLoad_Always_SetMinimumSize()
{
// Setup