Index: Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs
===================================================================
diff -u -r71df8711592b93a889d1064548a2a0071b7eef19 -ra246db9c5134d2c12ee5a37b19bde5e442acce38
--- Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 71df8711592b93a889d1064548a2a0071b7eef19)
+++ Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision a246db9c5134d2c12ee5a37b19bde5e442acce38)
@@ -224,6 +224,8 @@
/// Sets the datasource on the .
///
/// The datasource to set.
+ /// Providing a value of null for
+ /// will clear the grid view.
public void SetDataSource(object dataSource)
{
dataGridView.DataSource = dataSource;
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.Designer.cs
===================================================================
diff -u -r640df7c0609a81e19cc3661323ee461d801049b0 -ra246db9c5134d2c12ee5a37b19bde5e442acce38
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.Designer.cs (.../PipingInputView.Designer.cs) (revision 640df7c0609a81e19cc3661323ee461d801049b0)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.Designer.cs (.../PipingInputView.Designer.cs) (revision a246db9c5134d2c12ee5a37b19bde5e442acce38)
@@ -37,32 +37,51 @@
private void InitializeComponent()
{
this.chartControl = new Core.Components.OxyPlot.Forms.ChartControl();
+ this.pipingSoilLayerTable = new Ringtoets.Piping.Forms.Views.PipingSoilLayerTable();
this.SuspendLayout();
//
// chartControl
//
this.chartControl.BottomAxisTitle = "";
this.chartControl.ChartTitle = null;
+ this.chartControl.Data = null;
this.chartControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.chartControl.LeftAxisTitle = "";
this.chartControl.Location = new System.Drawing.Point(0, 0);
+ this.chartControl.MinimumSize = new System.Drawing.Size(100, 100);
this.chartControl.Name = "chartControl";
- this.chartControl.Size = new System.Drawing.Size(150, 150);
+ this.chartControl.Size = new System.Drawing.Size(333, 202);
this.chartControl.TabIndex = 0;
this.chartControl.Text = "chartControl";
//
+ // pipingSoilLayerTable
+ //
+ this.pipingSoilLayerTable.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.pipingSoilLayerTable.Location = new System.Drawing.Point(0, 202);
+ this.pipingSoilLayerTable.MinimumSize = new System.Drawing.Size(300, 150);
+ this.pipingSoilLayerTable.MultiSelect = true;
+ this.pipingSoilLayerTable.Name = "pipingSoilLayerTable";
+ this.pipingSoilLayerTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
+ this.pipingSoilLayerTable.Size = new System.Drawing.Size(333, 156);
+ this.pipingSoilLayerTable.TabIndex = 1;
+ //
// PipingInputView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoScroll = true;
this.Controls.Add(this.chartControl);
+ this.Controls.Add(this.pipingSoilLayerTable);
+ this.MinimumSize = new System.Drawing.Size(200, 300);
this.Name = "PipingInputView";
+ this.Size = new System.Drawing.Size(333, 358);
this.ResumeLayout(false);
}
#endregion
private Core.Components.OxyPlot.Forms.ChartControl chartControl;
+ private PipingSoilLayerTable pipingSoilLayerTable;
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs
===================================================================
diff -u -r33d5e01761f16b2d2e113ac0ffa86d49a48db5cb -ra246db9c5134d2c12ee5a37b19bde5e442acce38
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision 33d5e01761f16b2d2e113ac0ffa86d49a48db5cb)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision a246db9c5134d2c12ee5a37b19bde5e442acce38)
@@ -67,7 +67,7 @@
InitializeChartControl();
calculationObserver = new Observer(UpdateChartTitle);
- calculationInputObserver = new Observer(UpdateChartData);
+ calculationInputObserver = new Observer(UpdateViewData);
chartDataCollection = new ChartDataCollection(RingtoetsCommonFormsResources.Calculation_Input);
soilProfileChartData = PipingChartDataFactory.CreateSoilProfileChartData();
@@ -106,9 +106,7 @@
data = value as PipingCalculationScenario;
calculationObserver.Observable = data;
- calculationInputObserver.Observable = data != null
- ? data.InputParameters
- : null;
+ calculationInputObserver.Observable = data?.InputParameters;
if (data == null)
{
@@ -122,6 +120,7 @@
chartControl.Data = chartDataCollection;
chartControl.ChartTitle = data.Name;
}
+ UpdateTableData();
}
}
@@ -156,6 +155,12 @@
chartControl.ChartTitle = data.Name;
}
+ private void UpdateViewData()
+ {
+ UpdateChartData();
+ UpdateTableData();
+ }
+
private void UpdateChartData()
{
SetChartData();
@@ -172,6 +177,10 @@
soilProfileChartData.NotifyObservers();
soilProfileChartData.Collection.ForEachElementDo(md => md.NotifyObservers());
}
+ private void UpdateTableData()
+ {
+ pipingSoilLayerTable.SetData(data?.InputParameters.StochasticSoilProfile?.SoilProfile?.Layers);
+ }
private void SetChartData()
{
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingSoilLayerTable.cs
===================================================================
diff -u -r71df8711592b93a889d1064548a2a0071b7eef19 -ra246db9c5134d2c12ee5a37b19bde5e442acce38
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingSoilLayerTable.cs (.../PipingSoilLayerTable.cs) (revision 71df8711592b93a889d1064548a2a0071b7eef19)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingSoilLayerTable.cs (.../PipingSoilLayerTable.cs) (revision a246db9c5134d2c12ee5a37b19bde5e442acce38)
@@ -33,13 +33,13 @@
AddColumns();
}
+ ///
+ /// Sets the given for which the properties
+ /// are shown in the table.
+ ///
+ /// The collection of layers to show.
public void SetData(IEnumerable layers)
{
- if (layers == null)
- {
- throw new ArgumentNullException(nameof(layers));
- }
-
SetDataSource(layers);
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs
===================================================================
diff -u -r33d5e01761f16b2d2e113ac0ffa86d49a48db5cb -ra246db9c5134d2c12ee5a37b19bde5e442acce38
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs (.../PipingInputViewTest.cs) (revision 33d5e01761f16b2d2e113ac0ffa86d49a48db5cb)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs (.../PipingInputViewTest.cs) (revision a246db9c5134d2c12ee5a37b19bde5e442acce38)
@@ -57,6 +57,7 @@
Assert.IsInstanceOf(view);
Assert.IsNotNull(view.Chart);
Assert.IsNull(view.Data);
+ Assert.AreEqual(2, view.Controls.Count);
}
}
@@ -67,16 +68,32 @@
using (var view = new PipingInputView())
{
// Assert
- Assert.AreEqual(1, view.Controls.Count);
- Assert.AreSame(view.Chart, view.Controls[0]);
- Assert.AreEqual(DockStyle.Fill, ((Control) view.Chart).Dock);
- Assert.AreEqual("Afstand [m]", view.Chart.BottomAxisTitle);
- Assert.AreEqual("Hoogte [m+NAP]", view.Chart.LeftAxisTitle);
- Assert.IsNull(view.Chart.Data);
+ var chartControl = view.Controls.Find("chartControl", true).First() as IChartControl;
+ Assert.IsInstanceOf(chartControl);
+ Assert.NotNull(chartControl);
+ Assert.AreSame(chartControl, chartControl);
+ Assert.AreEqual(DockStyle.Fill, ((Control)chartControl).Dock);
+ Assert.AreEqual("Afstand [m]", chartControl.BottomAxisTitle);
+ Assert.AreEqual("Hoogte [m+NAP]", chartControl.LeftAxisTitle);
+ Assert.IsNull(chartControl.Data);
}
}
[Test]
+ public void DefaultConstructor_Always_AddEmptyTableControl()
+ {
+ // Call
+ using (var view = new PipingInputView())
+ {
+ // Assert
+ var tableControl = view.Controls.Find("pipingSoilLayerTable", true).First() as PipingSoilLayerTable;
+ Assert.NotNull(tableControl);
+ Assert.AreEqual(DockStyle.Bottom, tableControl.Dock);
+ CollectionAssert.IsEmpty(tableControl.Rows);
+ }
+ }
+
+ [Test]
public void Data_PipingCalculationScenario_DataSet()
{
// Setup
@@ -129,18 +146,45 @@
}
[Test]
- public void Data_EmptyGrassCoverErosionInwardsCalculation_NoMapDataSet()
+ public void Data_SetToNull_TableDataCleared()
{
// Setup
using (var view = new PipingInputView())
{
- var calculation = new PipingCalculationScenario(new GeneralPipingInput());
+ var calculation = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ InputParameters =
+ {
+ StochasticSoilProfile = new StochasticSoilProfile(0.1, SoilProfileType.SoilProfile1D, 1)
+ {
+ SoilProfile = new PipingSoilProfile(
+ "profile",
+ -1,
+ new[]
+ {
+ new PipingSoilLayer(3.0),
+ new PipingSoilLayer(2.0),
+ new PipingSoilLayer(0)
+ },
+ SoilProfileType.SoilProfile1D,
+ 1)
+ }
+ }
+ };
- // Call
view.Data = calculation;
+ var tableControl = view.Controls.Find("pipingSoilLayerTable", true).First() as PipingSoilLayerTable;
+ // Precondition
+ Assert.NotNull(tableControl);
+ Assert.AreEqual(3, tableControl.Rows.Count);
+
+ // Call
+ view.Data = null;
+
// Assert
- AssertEmptyChartData(view.Chart.Data);
+ Assert.IsNull(view.Data);
+ CollectionAssert.IsEmpty(tableControl.Rows);
}
}
@@ -185,6 +229,22 @@
}
[Test]
+ public void Data_WithoutSurfaceLine_NoMapDataSet()
+ {
+ // Setup
+ using (var view = new PipingInputView())
+ {
+ var calculation = new PipingCalculationScenario(new GeneralPipingInput());
+
+ // Call
+ view.Data = calculation;
+
+ // Assert
+ AssertEmptyChartData(view.Chart.Data);
+ }
+ }
+
+ [Test]
public void Data_WithSurfaceLineWithoutStochasticSoilProfile_CollectionOfEmptyChartDataSetForSoilProfile()
{
// Setup
@@ -244,6 +304,44 @@
}
[Test]
+ public void Data_WithoutStochasticSoilProfile_SoilLayerTableEmpty()
+ {
+ // Setup
+ using (var view = new PipingInputView())
+ {
+ var calculation = new PipingCalculationScenario(new GeneralPipingInput());
+
+ // Call
+ view.Data = calculation;
+
+ // Assert
+ AssertEmtpySoilLayerTable(view);
+ }
+ }
+
+ [Test]
+ public void Data_WithoutSoilProfile_SoilLayerTableEmpty()
+ {
+ // Setup
+ using (var view = new PipingInputView())
+ {
+ var calculation = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ InputParameters =
+ {
+ StochasticSoilProfile = new StochasticSoilProfile(0.5, SoilProfileType.SoilProfile1D, 1)
+ }
+ };
+
+ // Call
+ view.Data = calculation;
+
+ // Assert
+ AssertEmtpySoilLayerTable(view);
+ }
+ }
+
+ [Test]
public void UpdateObserver_CalculationNameUpdated_ChartTitleUpdated()
{
// Setup
@@ -621,6 +719,15 @@
return surfaceLine;
}
+ private static void AssertEmtpySoilLayerTable(PipingInputView view)
+ {
+ var tableControl = view.Controls.Find("pipingSoilLayerTable", true).First() as PipingSoilLayerTable;
+
+ // Precondition
+ Assert.NotNull(tableControl);
+ CollectionAssert.IsEmpty(tableControl.Rows);
+ }
+
private static void AssertEmptyChartData(ChartDataCollection chartDataCollection)
{
Assert.AreEqual("Invoer", chartDataCollection.Name);
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingSoilLayerTableTest.cs
===================================================================
diff -u -r71df8711592b93a889d1064548a2a0071b7eef19 -ra246db9c5134d2c12ee5a37b19bde5e442acce38
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingSoilLayerTableTest.cs (.../PipingSoilLayerTableTest.cs) (revision 71df8711592b93a889d1064548a2a0071b7eef19)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingSoilLayerTableTest.cs (.../PipingSoilLayerTableTest.cs) (revision a246db9c5134d2c12ee5a37b19bde5e442acce38)
@@ -80,21 +80,26 @@
}
[Test]
- public void SetData_WithNullData_ThrowsArgumentNullException()
+ public void SetData_NoDataAlreadySet_SetNewData()
{
// Setup
var table = new PipingSoilLayerTable();
+ var layers = new[]
+ {
+ new PipingSoilLayer(2.5),
+ new PipingSoilLayer(2.3),
+ new PipingSoilLayer(1.1)
+ };
// Call
- TestDelegate test = () => table.SetData(null);
+ table.SetData(layers);
// Assert
- string paramName = Assert.Throws(test).ParamName;
- Assert.AreEqual("layers", paramName);
+ Assert.AreEqual(3, table.Rows.Count);
}
[Test]
- public void SetData_NoDataSet_SetNewData()
+ public void SetData_SetNullDataAfterDataAlreadySet_ClearsData()
{
// Setup
var table = new PipingSoilLayerTable();
@@ -104,16 +109,17 @@
new PipingSoilLayer(2.3),
new PipingSoilLayer(1.1)
};
+ table.SetData(layers);
// Call
- table.SetData(layers);
+ table.SetData(null);
// Assert
- Assert.AreEqual(3, table.Rows.Count);
+ Assert.AreEqual(0, table.Rows.Count);
}
[Test]
- public void SetData_WithDataSet_ClearDataAndAddNewData()
+ public void SetData_SetNewDataAfterDataAlreadySet_ClearDataAndAddNewData()
{
// Setup
var table = new PipingSoilLayerTable();