Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs
===================================================================
diff -u -r789bfc0218617f5fc0cdf901634b170411878f2c -r4522cacb5cadeacd0612e4c17488e82698e8bcb9
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs (.../GrassCoverErosionInwardsCalculationRow.cs) (revision 789bfc0218617f5fc0cdf901634b170411878f2c)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs (.../GrassCoverErosionInwardsCalculationRow.cs) (revision 4522cacb5cadeacd0612e4c17488e82698e8bcb9)
@@ -148,18 +148,17 @@
///
/// Gets or sets the break water type of the .
///
- public DataGridViewComboBoxItemWrapper BreakWaterType
+ public BreakWaterType BreakWaterType
{
get
{
- return new DataGridViewComboBoxItemWrapper(GrassCoverErosionInwardsCalculationScenario.InputParameters.BreakWater.Type);
+ return GrassCoverErosionInwardsCalculationScenario.InputParameters.BreakWater.Type;
}
set
{
- BreakWaterType valueToSet = value.WrappedObject;
- if (!GrassCoverErosionInwardsCalculationScenario.InputParameters.BreakWater.Type.Equals(valueToSet))
+ if (!GrassCoverErosionInwardsCalculationScenario.InputParameters.BreakWater.Type.Equals(value))
{
- PropertyChangeHelper.ChangePropertyAndNotify(() => GrassCoverErosionInwardsCalculationScenario.InputParameters.BreakWater.Type = valueToSet, propertyChangeHandler);
+ PropertyChangeHelper.ChangePropertyAndNotify(() => GrassCoverErosionInwardsCalculationScenario.InputParameters.BreakWater.Type = value, propertyChangeHandler);
}
}
}
Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.Designer.cs
===================================================================
diff -u -r3fba7629ec6d261d59417ddc5775fda727d75511 -r4522cacb5cadeacd0612e4c17488e82698e8bcb9
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.Designer.cs (.../GrassCoverErosionInwardsCalculationsView.Designer.cs) (revision 3fba7629ec6d261d59417ddc5775fda727d75511)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.Designer.cs (.../GrassCoverErosionInwardsCalculationsView.Designer.cs) (revision 4522cacb5cadeacd0612e4c17488e82698e8bcb9)
@@ -118,6 +118,7 @@
resources.ApplyResources(this.buttonGenerateCalculations, "buttonGenerateCalculations");
this.buttonGenerateCalculations.Name = "buttonGenerateCalculations";
this.buttonGenerateCalculations.UseVisualStyleBackColor = true;
+ this.buttonGenerateCalculations.MouseClick += new System.Windows.Forms.MouseEventHandler(this.OnGenerateCalculationsButtonClick);
//
// GrassCoverErosionInwardsCalculationsView
//
Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs
===================================================================
diff -u -r789bfc0218617f5fc0cdf901634b170411878f2c -r4522cacb5cadeacd0612e4c17488e82698e8bcb9
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs (.../GrassCoverErosionInwardsCalculationsView.cs) (revision 789bfc0218617f5fc0cdf901634b170411878f2c)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs (.../GrassCoverErosionInwardsCalculationsView.cs) (revision 4522cacb5cadeacd0612e4c17488e82698e8bcb9)
@@ -27,6 +27,7 @@
using Core.Common.Base.Geometry;
using Core.Common.Controls.DataGrid;
using Core.Common.Controls.Views;
+using Core.Common.Util;
using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.Calculation;
using Riskeer.Common.Data.DikeProfiles;
@@ -35,6 +36,7 @@
using Riskeer.Common.Forms.ChangeHandlers;
using Riskeer.Common.Forms.Helpers;
using Riskeer.Common.Forms.PresentationObjects;
+using Riskeer.Common.Primitives;
using Riskeer.GrassCoverErosionInwards.Data;
using Riskeer.GrassCoverErosionInwards.Forms.PresentationObjects;
using Riskeer.GrassCoverErosionInwards.Forms.Properties;
@@ -94,7 +96,6 @@
grassCoverErosionInwardsFailureMechanism = value;
grassCoverErosionInwardsFailureMechanismObserver.Observable = grassCoverErosionInwardsFailureMechanism;
-
UpdateDikeProfilesColumn();
UpdateSelectableHydraulicBoundaryLocationsColumn();
UpdateSectionsListBox();
@@ -193,12 +194,14 @@
dataGridViewControl.AddCheckBoxColumn(nameof(GrassCoverErosionInwardsCalculationRow.UseBreakWater), Resources.GrassCoverErosionInwardsCalculation_Use_Dam);
- dataGridViewControl.AddComboBoxColumn>(
- nameof(GrassCoverErosionInwardsCalculationRow.BreakWaterType),
- Resources.GrassCoverErosionInwardsCalculation_Damtype,
- null,
- nameof(DataGridViewComboBoxItemWrapper.This),
- nameof(DataGridViewComboBoxItemWrapper.DisplayName));
+ dataGridViewControl.AddComboBoxColumn(nameof(GrassCoverErosionInwardsCalculationRow.BreakWaterType),
+ Resources.GrassCoverErosionInwardsCalculation_Damtype,
+ Enum.GetValues(typeof(BreakWaterType))
+ .OfType()
+ .Select(bwt => new EnumDisplayWrapper(bwt))
+ .ToArray(),
+ nameof(EnumDisplayWrapper.Value),
+ nameof(EnumDisplayWrapper.DisplayName));
dataGridViewControl.AddTextBoxColumn(
nameof(GrassCoverErosionInwardsCalculationRow.BreakWaterHeight),
@@ -217,6 +220,9 @@
dataGridViewControl.AddTextBoxColumn(
nameof(GrassCoverErosionInwardsCalculationRow.StandardDeviationCriticalFlowRate),
Resources.GrassCoverErosionInwardsCalculation_StandardDeviation_Critical_OvertoppingRate);
+
+ UpdateDikeProfilesColumn();
+ UpdateSelectableHydraulicBoundaryLocationsColumn();
}
private void UpdateGenerateCalculationsButtonState()
@@ -295,7 +301,7 @@
private void FillAvailableDikeProfilesList(DataGridViewRow dataGridViewRow)
{
- var cell = (DataGridViewComboBoxCell) dataGridViewRow.Cells[selectableHydraulicBoundaryLocationColumnIndex];
+ var cell = (DataGridViewComboBoxCell) dataGridViewRow.Cells[selectableDikeProfileColumnIndex];
DataGridViewComboBoxItemWrapper[] dataGridViewComboBoxItemWrappers = GetSelectableDikeProfileDataSource(grassCoverErosionInwardsFailureMechanism.DikeProfiles).ToArray();
SetItemsOnObjectCollection(cell.Items, dataGridViewComboBoxItemWrappers);
}
@@ -393,19 +399,6 @@
{
SetItemsOnObjectCollection(selectableDikeProfileColumn.Items, grassCoverErosionInwardsFailureMechanism.DikeProfiles.ToArray());
}
-
- var selectableBreakWaterTypesColumn = (DataGridViewComboBoxColumn) dataGridViewControl.GetColumnFromIndex(selectableBreakWaterTypesColumnIndex);
- var breakWaterTypes = new object[]
- {
- BreakWaterType.Wall,
- BreakWaterType.Caisson,
- BreakWaterType.Dam
- };
-
- using (new SuspendDataGridViewColumnResizes(selectableBreakWaterTypesColumn))
- {
- SetItemsOnObjectCollection(selectableBreakWaterTypesColumn.Items, breakWaterTypes);
- }
}
private IEnumerable GetSelectableHydraulicBoundaryLocationsFromFailureMechanism()
@@ -434,27 +427,38 @@
UpdateDataGridViewDataSource();
}
- // private void OnGenerateCalculationsButtonClick(object sender, EventArgs e)
- // {
- // if (calculationGroup == null)
- // {
- // return;
- // }
- //
- // var dialog = new PipingSurfaceLineSelectionDialog(Parent, pipingFailureMechanism.SurfaceLines);
- // dialog.ShowDialog();
- // IEnumerable calculationsStructure = PipingCalculationConfigurationHelper.GenerateCalculationItemsStructure(
- // dialog.SelectedItems,
- // pipingFailureMechanism.StochasticSoilModels,
- // pipingFailureMechanism.GeneralInput);
- // foreach (ICalculationBase item in calculationsStructure)
- // {
- // calculationGroup.Children.Add(item);
- // }
- //
- // calculationGroup.NotifyObservers();
- // }
+ private void OnGenerateCalculationsButtonClick(object sender, EventArgs e)
+ {
+ if (calculationGroup == null)
+ {
+ return;
+ }
+ using (var dialog = new GrassCoverErosionInwardsDikeProfileSelectionDialog(Parent, grassCoverErosionInwardsFailureMechanism.DikeProfiles))
+ {
+ dialog.ShowDialog();
+ GenerateCalculations(calculationGroup, dialog.SelectedItems);
+ }
+
+ calculationGroup.NotifyObservers();
+ }
+
+ private static void GenerateCalculations(CalculationGroup calculationGroup, IEnumerable dikeProfiles)
+ {
+ foreach (DikeProfile profile in dikeProfiles)
+ {
+ var calculation = new GrassCoverErosionInwardsCalculationScenario
+ {
+ Name = NamingHelper.GetUniqueName(calculationGroup.Children, profile.Name, c => c.Name),
+ InputParameters =
+ {
+ DikeProfile = profile
+ }
+ };
+ calculationGroup.Children.Add(calculation);
+ }
+ }
+
private void OnGrassCoverErosionInwardsFailureMechanismUpdate()
{
UpdateSectionsListBox();
Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.resx
===================================================================
diff -u -r3fba7629ec6d261d59417ddc5775fda727d75511 -r4522cacb5cadeacd0612e4c17488e82698e8bcb9
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.resx (.../GrassCoverErosionInwardsCalculationsView.resx) (revision 3fba7629ec6d261d59417ddc5775fda727d75511)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.resx (.../GrassCoverErosionInwardsCalculationsView.resx) (revision 4522cacb5cadeacd0612e4c17488e82698e8bcb9)
@@ -448,7 +448,7 @@
0
- <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="splitContainer" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="buttonGenerateScenarios" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Percent,100,AutoSize,0,Absolute,25" /></TableLayoutSettings>
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="splitContainer" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="buttonGenerateCalculations" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Percent,100,AutoSize,0,Absolute,25" /></TableLayoutSettings>
True
Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsCalculationsViewTest.cs
===================================================================
diff -u -r9817b8134222089e6812200b797ff63eb675d67b -r4522cacb5cadeacd0612e4c17488e82698e8bcb9
--- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsCalculationsViewTest.cs (.../GrassCoverErosionInwardsCalculationsViewTest.cs) (revision 9817b8134222089e6812200b797ff63eb675d67b)
+++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsCalculationsViewTest.cs (.../GrassCoverErosionInwardsCalculationsViewTest.cs) (revision 4522cacb5cadeacd0612e4c17488e82698e8bcb9)
@@ -54,8 +54,8 @@
private const int damHeightColumnIndex = 5;
private const int useForeShoreGeometryColumnIndex = 6;
private const int dikeHeightColumnIndex = 7;
- private const int expectedCriticalOvertoppingRateColumnIndex = 8;
- private const int standardDeviationCriticalOvertoppingRateColumnIndex = 9;
+ private const int meanCriticalFlowRateColumnIndex = 8;
+ private const int standardDeviationCriticalFlowRateColumnIndex = 9;
private Form testForm;
[Test]
@@ -87,7 +87,6 @@
foreach (DataGridViewComboBoxColumn column in dataGridView.Columns.OfType())
{
- Assert.AreEqual("This", column.ValueMember);
Assert.AreEqual("DisplayName", column.DisplayMember);
}
}
@@ -110,8 +109,8 @@
Assert.AreEqual("Damhoogte [m+NAP]", dataGridView.Columns[damHeightColumnIndex].HeaderText);
Assert.AreEqual("Gebruik voorlandgeometrie", dataGridView.Columns[useForeShoreGeometryColumnIndex].HeaderText);
Assert.AreEqual("Dijkhoogte [m+NAP]", dataGridView.Columns[dikeHeightColumnIndex].HeaderText);
- Assert.AreEqual("Verwachtingswaarde kritiek overslagdebiet [m3/m/s]", dataGridView.Columns[expectedCriticalOvertoppingRateColumnIndex].HeaderText);
- Assert.AreEqual("Standaardafwijking kritiek overslagdebiet [m3/m/s]", dataGridView.Columns[standardDeviationCriticalOvertoppingRateColumnIndex].HeaderText);
+ Assert.AreEqual("Verwachtingswaarde kritiek overslagdebiet [m3/m/s]", dataGridView.Columns[meanCriticalFlowRateColumnIndex].HeaderText);
+ Assert.AreEqual("Standaardafwijking kritiek overslagdebiet [m3/m/s]", dataGridView.Columns[standardDeviationCriticalFlowRateColumnIndex].HeaderText);
}
}
@@ -184,40 +183,40 @@
}
}
- // [Test]
- // public void GrassCoverErosionInwardsCalculationsView_ChangingListBoxSelection_DataGridViewCorrectlySyncedAndSelectionChangedFired()
- // {
- // // Setup
- // var mocks = new MockRepository();
- // var assessmentSection = mocks.Stub();
- // mocks.ReplayAll();
- //
- // using (GrassCoverErosionInwardsCalculationsView grassCoverErosionInwardsCalculationsView = ShowFullyConfiguredGrassCoverErosionInwardsCalculationsView(
- // assessmentSection))
- // {
- // var selectionChangedCount = 0;
- // grassCoverErosionInwardsCalculationsView.SelectionChanged += (sender, args) => selectionChangedCount++;
- //
- // var listBox = (ListBox) new ControlTester("listBox").TheObject;
- // var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
- //
- // // Precondition
- // Assert.AreEqual(2, dataGridView.Rows.Count);
- // Assert.AreEqual("Calculation 1", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue);
- // Assert.AreEqual("Calculation 2", dataGridView.Rows[1].Cells[nameColumnIndex].FormattedValue);
- //
- // // Call
- // listBox.SelectedIndex = 1;
- //
- // // Assert
- // Assert.AreEqual(1, dataGridView.Rows.Count);
- // Assert.AreEqual("Calculation 2", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue);
- // Assert.AreEqual(2, selectionChangedCount);
- // }
- //
- // mocks.VerifyAll();
- // }
+ [Test]
+ public void GrassCoverErosionInwardsCalculationsView_ChangingListBoxSelection_DataGridViewCorrectlySyncedAndSelectionChangedFired()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+ using (GrassCoverErosionInwardsCalculationsView grassCoverErosionInwardsCalculationsView = ShowFullyConfiguredGrassCoverErosionInwardsCalculationsView(
+ assessmentSection))
+ {
+ var selectionChangedCount = 0;
+ grassCoverErosionInwardsCalculationsView.SelectionChanged += (sender, args) => selectionChangedCount++;
+
+ var listBox = (ListBox) new ControlTester("listBox").TheObject;
+ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
+
+ // Precondition
+ Assert.AreEqual(2, dataGridView.Rows.Count);
+ Assert.AreEqual("Calculation 1", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue);
+ Assert.AreEqual("Calculation 2", dataGridView.Rows[1].Cells[nameColumnIndex].FormattedValue);
+
+ // Call
+ listBox.SelectedIndex = 1;
+
+ // Assert
+ Assert.AreEqual(1, dataGridView.Rows.Count);
+ Assert.AreEqual("Calculation 2", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue);
+ Assert.AreEqual(2, selectionChangedCount);
+ }
+
+ mocks.VerifyAll();
+ }
+
[Test]
public void ButtonGenerateCalculations_WithoutGrassCoverErosionInwardsFailureMechanism_ButtonDisabled()
{
@@ -265,26 +264,26 @@
var mocks = new MockRepository();
var assessmentSection = mocks.Stub();
mocks.ReplayAll();
-
+
using (GrassCoverErosionInwardsCalculationsView grassCoverErosionInwardsCalculationsView = ShowFullyConfiguredGrassCoverErosionInwardsCalculationsView(
assessmentSection))
{
var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
+
dataGridView.CurrentCell = dataGridView.Rows[selectedRow].Cells[0];
-
+
// Call
object selection = grassCoverErosionInwardsCalculationsView.Selection;
-
+
// Assert
Assert.IsInstanceOf(selection);
var dataRow = (GrassCoverErosionInwardsCalculationRow) dataGridView.Rows[selectedRow].DataBoundItem;
Assert.AreSame(dataRow.GrassCoverErosionInwardsCalculationScenario, ((GrassCoverErosionInwardsInputContext) selection).Calculation);
}
-
+
mocks.VerifyAll();
}
-
+
[Test]
[TestCase(true)]
[TestCase(false)]
@@ -294,37 +293,37 @@
var mocks = new MockRepository();
var grassCoverErosionInwardsCalculationObserver = mocks.StrictMock();
var grassCoverErosionInwardsCalculationInputObserver = mocks.StrictMock();
-
+
grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
-
+
var assessmentSection = mocks.Stub();
mocks.ReplayAll();
-
+
using (GrassCoverErosionInwardsCalculationsView grassCoverErosionInwardsCalculationsView = ShowFullyConfiguredGrassCoverErosionInwardsCalculationsView(
assessmentSection))
{
var data = (CalculationGroup) grassCoverErosionInwardsCalculationsView.Data;
var grassCoverErosionInwardsCalculation = (GrassCoverErosionInwardsCalculationScenario) data.Children.First();
-
+
if (useCalculationWithOutput)
{
grassCoverErosionInwardsCalculation.Output = new GrassCoverErosionInwardsOutput(new TestOvertoppingOutput(2.4),
new TestDikeHeightOutput(4.2),
new TestOvertoppingRateOutput(1.0));
}
-
+
grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
grassCoverErosionInwardsCalculation.InputParameters.Attach(grassCoverErosionInwardsCalculationInputObserver);
-
+
var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
-
+
// Call
dataGridView.Rows[0].Cells[nameColumnIndex].Value = "New name";
-
+
// Assert
grassCoverErosionInwardsCalculation.Output = null;
}
-
+
mocks.VerifyAll();
}
@@ -350,8 +349,8 @@
GrassCoverErosionInwardsFailureMechanism failureMechanism = ConfigureFailureMechanism();
return ShowFullyConfiguredGrassCoverErosionInwardsCalculationsView(assessmentSection,
- failureMechanism,
- ConfigureCalculationGroup());
+ failureMechanism,
+ ConfigureCalculationGroup());
}
private static void ConfigureHydraulicBoundaryDatabase(IAssessmentSection assessmentSection)
@@ -367,8 +366,8 @@
}
private GrassCoverErosionInwardsCalculationsView ShowFullyConfiguredGrassCoverErosionInwardsCalculationsView(IAssessmentSection assessmentSection,
- GrassCoverErosionInwardsFailureMechanism failureMechanism,
- CalculationGroup calculationGroup)
+ GrassCoverErosionInwardsFailureMechanism failureMechanism,
+ CalculationGroup calculationGroup)
{
GrassCoverErosionInwardsCalculationsView view = ShowGrassCoverErosionInwardsCalculationsView();
view.Data = calculationGroup;
@@ -394,7 +393,7 @@
},
InputParameters =
{
- DikeProfile = null,
+ DikeProfile = DikeProfileTestFactory.CreateDikeProfile(new Point2D(0.0, 0.0)),
HydraulicBoundaryLocation = null,
DikeHeight = (RoundedDouble) 1.1,
Orientation = (RoundedDouble) 2.2,
@@ -427,7 +426,7 @@
},
InputParameters =
{
- DikeProfile = null,
+ DikeProfile = DikeProfileTestFactory.CreateDikeProfile(new Point2D(5.0, 0.0)),
HydraulicBoundaryLocation = null,
DikeHeight = (RoundedDouble) 1.1,
Orientation = (RoundedDouble) 2.2,