Index: Core/Common/test/Core.Common.TestUtil/DataGridViewTestHelper.cs
===================================================================
diff -u -r6a87577fa7123c62be24c8f7a192a496fe41f8fb -rfb94cd8acd30f7c94a6662f68edf858185b71bd2
--- Core/Common/test/Core.Common.TestUtil/DataGridViewTestHelper.cs (.../DataGridViewTestHelper.cs) (revision 6a87577fa7123c62be24c8f7a192a496fe41f8fb)
+++ Core/Common/test/Core.Common.TestUtil/DataGridViewTestHelper.cs (.../DataGridViewTestHelper.cs) (revision fb94cd8acd30f7c94a6662f68edf858185b71bd2)
@@ -52,6 +52,24 @@
}
///
+ /// Asserts that all columns match the visibility.
+ ///
+ /// The expected column visibility.
+ /// The view.
+ /// Thrown when a column does not have the
+ /// expected visibility or there is a mismatch in the number of columns.
+ public static void AssertExpectedColumnVisibility(IEnumerable expectedVisibility, DataGridView actualDataGridView)
+ {
+ int expectedNrOfColumns = expectedVisibility.Count();
+ Assert.AreEqual(expectedNrOfColumns, actualDataGridView.ColumnCount);
+ for (var i = 0; i < expectedNrOfColumns; i++)
+ {
+ DataGridViewColumn column = actualDataGridView.Columns[i];
+ Assert.AreEqual(expectedVisibility.ElementAt(i), column.Visible);
+ }
+ }
+
+ ///
/// Asserts that all columns are of the expected classes.
///
/// The column types.
Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneLocationCalculationsView.cs
===================================================================
diff -u -r25dfcb234230ea91032011e683553be6bee37b99 -rfb94cd8acd30f7c94a6662f68edf858185b71bd2
--- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneLocationCalculationsView.cs (.../DuneLocationCalculationsView.cs) (revision 25dfcb234230ea91032011e683553be6bee37b99)
+++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneLocationCalculationsView.cs (.../DuneLocationCalculationsView.cs) (revision fb94cd8acd30f7c94a6662f68edf858185b71bd2)
@@ -21,12 +21,14 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Windows.Forms;
using Core.Common.Base;
using Core.Common.Controls.Views;
using Core.Common.Util.Extensions;
using Riskeer.Common.Data.AssessmentSection;
+using Riskeer.Common.Data.Hydraulics;
using Riskeer.DuneErosion.Data;
using Riskeer.DuneErosion.Forms.GuiServices;
using Riskeer.DuneErosion.Forms.Properties;
@@ -39,16 +41,15 @@
///
public partial class DuneLocationCalculationsView : UserControl, ISelectionProvider, IView
{
+ private const int calculateColumnIndex = 0;
+ private const int hydraulicBoundaryDatabaseFileNameColumnIndex = 3;
private readonly Observer failureMechanismObserver;
private readonly Observer duneLocationCalculationsObserver;
private readonly IObservableEnumerable calculations;
private readonly Func getTargetProbabilityFunc;
private readonly Func getCalculationIdentifierFunc;
private readonly RecursiveObserver, DuneLocationCalculation> duneLocationCalculationObserver;
- private const int calculateColumnIndex = 0;
- private const int hydraulicBoundaryDatabaseFileNameColumnIndex = 3;
-
private bool updatingDataSource;
public event EventHandler SelectionChanged;
@@ -121,16 +122,6 @@
UpdateDataGridViewDataSource();
}
- public object Selection
- {
- get
- {
- return CreateSelectedItemFromCurrentRow();
- }
- }
-
- public object Data { get; set; }
-
///
/// Gets or sets the
/// to perform calculations with.
@@ -148,10 +139,20 @@
///
public DuneErosionFailureMechanism FailureMechanism { get; }
+ public object Selection
+ {
+ get
+ {
+ return CreateSelectedItemFromCurrentRow();
+ }
+ }
+
+ public object Data { get; set; }
+
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
-
+
InitializeDataGridView();
UpdateDataGridViewColumnVisibility();
}
@@ -192,8 +193,8 @@
RiskeerCommonFormsResources.HydraulicBoundaryDatabase_Location_Name_DisplayName);
dataGridViewControl.AddTextBoxColumn(nameof(DuneLocationCalculationRow.Id),
RiskeerCommonFormsResources.HydraulicBoundaryDatabase_Location_Id_DisplayName);
- dataGridViewControl.AddTextBoxColumn(nameof(DuneLocationCalculationRow.Location),
- RiskeerCommonFormsResources.HydraulicBoundaryDatabase_Location_Coordinates_DisplayName);
+ dataGridViewControl.AddTextBoxColumn(nameof(DuneLocationCalculationRow.HydraulicBoundaryDatabaseFileName),
+ RiskeerCommonFormsResources.HydraulicBoundaryDatabase_DisplayName);
dataGridViewControl.AddTextBoxColumn(nameof(DuneLocationCalculationRow.CoastalAreaId),
Resources.DuneLocation_CoastalAreaId_DisplayName);
dataGridViewControl.AddTextBoxColumn(nameof(DuneLocationCalculationRow.Offset),
@@ -278,7 +279,10 @@
private void SetDataSource()
{
- dataGridViewControl.SetDataSource(calculations?.Select(calc => new DuneLocationCalculationRow(calc, string.Empty)).ToArray());
+ Dictionary lookup = GetHydraulicBoundaryLocationLookup();
+ dataGridViewControl.SetDataSource(
+ calculations?.Select(calc => new DuneLocationCalculationRow(calc, lookup[calc.DuneLocation.HydraulicBoundaryLocation]))
+ .ToArray());
}
private void CalculateForSelectedRows()
@@ -289,6 +293,20 @@
getCalculationIdentifierFunc());
}
+ private Dictionary GetHydraulicBoundaryLocationLookup()
+ {
+ var lookup = new Dictionary();
+ foreach (HydraulicBoundaryDatabase database in AssessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases)
+ {
+ foreach (HydraulicBoundaryLocation location in database.Locations)
+ {
+ lookup[location] = Path.GetFileNameWithoutExtension(database.FilePath);
+ }
+ }
+
+ return lookup;
+ }
+
#region Event handling
private void DataGridViewCellValueChanged(object sender, DataGridViewCellEventArgs e)
Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs
===================================================================
diff -u -r21f561c73f0a7dcee27f6989b84da9d40868069c -rfb94cd8acd30f7c94a6662f68edf858185b71bd2
--- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs (.../DuneLocationCalculationsViewTest.cs) (revision 21f561c73f0a7dcee27f6989b84da9d40868069c)
+++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs (.../DuneLocationCalculationsViewTest.cs) (revision fb94cd8acd30f7c94a6662f68edf858185b71bd2)
@@ -27,7 +27,6 @@
using System.Linq;
using System.Windows.Forms;
using Core.Common.Base;
-using Core.Common.Base.Geometry;
using Core.Common.Controls.Views;
using Core.Common.TestUtil;
using Core.Common.Util;
@@ -182,6 +181,7 @@
{
// Setup
var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.HydraulicBoundaryData).Return(new HydraulicBoundaryData());
mocks.ReplayAll();
var failureMechanism = new DuneErosionFailureMechanism();
@@ -229,7 +229,7 @@
"Berekenen",
"Naam",
"ID",
- "Coördinaten [m]",
+ "HRD bestand",
"Kustvaknummer",
"Metrering [dam]",
"Rekenwaarde waterstand [m+NAP]",
@@ -241,6 +241,23 @@
};
DataGridViewTestHelper.AssertExpectedHeaders(expectedHeaderNames, dataGridView);
+ var expectedColumnVisibility = new[]
+ {
+ true,
+ true,
+ true,
+ false,
+ true,
+ true,
+ true,
+ true,
+ true,
+ true,
+ true,
+ true
+ };
+ DataGridViewTestHelper.AssertExpectedColumnVisibility(expectedColumnVisibility, dataGridView);
+
Type[] expectedColumnTypes =
{
typeof(DataGridViewCheckBoxColumn),
@@ -301,7 +318,7 @@
false,
"1",
"0",
- new Point2D(0, 0).ToString(),
+ "HRD dutch coast south",
"50",
"320",
"-",
@@ -318,7 +335,7 @@
false,
"2",
"0",
- new Point2D(0, 0).ToString(),
+ "HRD dutch coast south",
"60",
"230",
1.23.ToString(CultureInfo.CurrentCulture),
@@ -376,11 +393,27 @@
public void Selection_WithSelectedCalculation_ReturnsSelectedCalculation()
{
// Setup
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+ var hydraulicBoundaryData = new HydraulicBoundaryData
+ {
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ FilePath = "Just/a/HRD",
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
+ }
+ };
+
var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.HydraulicBoundaryData).Return(hydraulicBoundaryData);
mocks.ReplayAll();
- DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection,
- new TestHydraulicBoundaryLocation());
+ DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection, hydraulicBoundaryLocation);
DataGridView dataGridView = GetDataGridView();
DataGridViewRow selectedCalculationRow = dataGridView.Rows[0];
@@ -481,10 +514,28 @@
public void GivenFullyConfiguredDuneLocationCalculationsView_WhenDuneLocationCalculationsUpdatedAndNotified_ThenDataGridCorrectlyUpdated()
{
// Given
+ var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(10, string.Empty, 10.0, 10.0);
+ var hydraulicBoundaryData = new HydraulicBoundaryData
+ {
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ FilePath = "Just/a/HRD",
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
+ }
+ };
+
var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.HydraulicBoundaryData).Return(hydraulicBoundaryData);
mocks.ReplayAll();
var calculations = new ObservableList();
+
ShowDuneLocationCalculationsView(calculations, new DuneErosionFailureMechanism(), assessmentSection);
// Precondition
@@ -495,7 +546,7 @@
// When
var duneLocation = new DuneLocation(
- "10", new HydraulicBoundaryLocation(10, string.Empty, 10.0, 10.0),
+ "10", hydraulicBoundaryLocation,
new DuneLocation.ConstructionProperties
{
CoastalAreaId = 3,
@@ -526,7 +577,7 @@
false,
"10",
"10",
- new Point2D(10, 10).ToString(),
+ "HRD",
"3",
"80",
3.21.ToString(CultureInfo.CurrentCulture),
@@ -543,9 +594,23 @@
public void GivenFullyConfiguredDuneLocationCalculationsView_WhenEachDuneLocationCalculationOutputClearedAndNotified_ThenDataGridViewRowsRefreshedWithNewValues()
{
// Given
- var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+ var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(10, string.Empty, 10.0, 10.0);
+ var hydraulicBoundaryData = new HydraulicBoundaryData
+ {
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
+ }
+ };
var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.HydraulicBoundaryData).Return(hydraulicBoundaryData);
mocks.ReplayAll();
IObservableEnumerable calculations = GenerateDuneLocationCalculations(hydraulicBoundaryLocation);
@@ -668,10 +733,26 @@
public void CalculateForSelectedButton_OneSelectedButCalculationGuiServiceNotSet_DoesNotThrowException()
{
// Setup
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+ var hydraulicBoundaryData = new HydraulicBoundaryData
+ {
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
+ }
+ };
+
var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.HydraulicBoundaryData).Return(hydraulicBoundaryData);
mocks.ReplayAll();
- ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection, new TestHydraulicBoundaryLocation());
+ ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection, hydraulicBoundaryLocation);
DataGridView dataGridView = GetDataGridView();
DataGridViewRowCollection rows = dataGridView.Rows;