Index: Core/Components/src/Core.Components.Charting.Forms/IChartControl.cs
===================================================================
diff -u -rf816a8ef737d38b4f044855b73abf3ea32b79422 -rf04895089d34bddb618db8c7001c574428be10c6
--- Core/Components/src/Core.Components.Charting.Forms/IChartControl.cs (.../IChartControl.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
+++ Core/Components/src/Core.Components.Charting.Forms/IChartControl.cs (.../IChartControl.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -72,5 +72,10 @@
/// Zooms to a level so that everything is in view.
///
void ZoomToAll();
+
+ ///
+ /// Sets the data of the chart to null.
+ ///
+ void ResetChartData();
}
}
\ No newline at end of file
Index: Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs
===================================================================
diff -u -r1d8207d879e9aca8d34bd5b62410c04229c7d0d5 -rf04895089d34bddb618db8c7001c574428be10c6
--- Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs (.../MapControl.cs) (revision 1d8207d879e9aca8d34bd5b62410c04229c7d0d5)
+++ Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs (.../MapControl.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -112,6 +112,11 @@
}
}
+ public void ResetMapData()
+ {
+ Data = null;
+ }
+
public void UpdateObserver()
{
DrawFeatureSets();
Index: Core/Components/src/Core.Components.Gis.Forms/IMapControl.cs
===================================================================
diff -u -recef7aa46cb8fb7d138a5cc00a35f9e7aa7676b6 -rf04895089d34bddb618db8c7001c574428be10c6
--- Core/Components/src/Core.Components.Gis.Forms/IMapControl.cs (.../IMapControl.cs) (revision ecef7aa46cb8fb7d138a5cc00a35f9e7aa7676b6)
+++ Core/Components/src/Core.Components.Gis.Forms/IMapControl.cs (.../IMapControl.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -67,5 +67,10 @@
/// Toggles the visibility mouse coordinates of the .
///
void ToggleMouseCoordinatesVisibility();
+
+ ///
+ /// Sets the data of the map to null.
+ ///
+ void ResetMapData();
}
}
\ No newline at end of file
Index: Core/Components/src/Core.Components.OxyPlot.Forms/ChartControl.cs
===================================================================
diff -u -rba81c979693c5d5467b232696a688b6305e57c5e -rf04895089d34bddb618db8c7001c574428be10c6
--- Core/Components/src/Core.Components.OxyPlot.Forms/ChartControl.cs (.../ChartControl.cs) (revision ba81c979693c5d5467b232696a688b6305e57c5e)
+++ Core/Components/src/Core.Components.OxyPlot.Forms/ChartControl.cs (.../ChartControl.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -159,6 +159,11 @@
DrawSeries();
}
+ public void ResetChartData()
+ {
+ Data = null;
+ }
+
#endregion
}
}
\ No newline at end of file
Index: Core/Components/test/Core.Components.DotSpatial.Forms.Test/MapControlTest.cs
===================================================================
diff -u -r04b631b486b742c5339deb1d5504bb13ab5e248d -rf04895089d34bddb618db8c7001c574428be10c6
--- Core/Components/test/Core.Components.DotSpatial.Forms.Test/MapControlTest.cs (.../MapControlTest.cs) (revision 04b631b486b742c5339deb1d5504bb13ab5e248d)
+++ Core/Components/test/Core.Components.DotSpatial.Forms.Test/MapControlTest.cs (.../MapControlTest.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -685,6 +685,23 @@
}
}
+ [Test]
+ public void ResetMapData_Always_SetsDataToNull()
+ {
+ // Setup
+ using (var map = new MapControl())
+ {
+ // Precondition
+ Assert.IsNotNull(map.Data);
+
+ // Call
+ map.ResetMapData();
+
+ // Assert
+ Assert.IsNull(map.Data);
+ }
+ }
+
private const double padding = 0.05;
private static MapDataCollection GetTestData()
Index: Core/Components/test/Core.Components.OxyPlot.Forms.Test/ChartControlTest.cs
===================================================================
diff -u -rba81c979693c5d5467b232696a688b6305e57c5e -rf04895089d34bddb618db8c7001c574428be10c6
--- Core/Components/test/Core.Components.OxyPlot.Forms.Test/ChartControlTest.cs (.../ChartControlTest.cs) (revision ba81c979693c5d5467b232696a688b6305e57c5e)
+++ Core/Components/test/Core.Components.OxyPlot.Forms.Test/ChartControlTest.cs (.../ChartControlTest.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -231,5 +231,22 @@
Assert.AreEqual(1, invalidated);
}
}
+
+ [Test]
+ public void ResetChartData_Always_SetsDataToNull()
+ {
+ // Setup
+ using (var chart = new ChartControl())
+ {
+ // Precondition
+ Assert.IsNotNull(chart.Data);
+
+ // Call
+ chart.ResetChartData();
+
+ // Assert
+ Assert.IsNull(chart.Data);
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs
===================================================================
diff -u -rf1bd17ba95b3fbae5928d4240523d50d8b83b64d -rf04895089d34bddb618db8c7001c574428be10c6
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs (.../AssessmentSectionView.cs) (revision f1bd17ba95b3fbae5928d4240523d50d8b83b64d)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs (.../AssessmentSectionView.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -61,17 +61,37 @@
}
set
{
- data = value as IAssessmentSection;
+ var newValue = value as IAssessmentSection;
- if (data != null)
+ DetachFromData();
+ data = newValue;
+ if (data == null)
{
- data.Detach(this);
- SetDataToMap();
- data.Attach(this);
+ Map.ResetMapData();
+ return;
}
+
+ SetDataToMap();
+ AttachToData();
}
}
+ private void AttachToData()
+ {
+ if (data != null)
+ {
+ data.Attach(this);
+ }
+ }
+
+ private void DetachFromData()
+ {
+ if (data != null)
+ {
+ data.Detach(this);
+ }
+ }
+
public IMapControl Map
{
get
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssessmentSectionViewTest.cs
===================================================================
diff -u -r04b631b486b742c5339deb1d5504bb13ab5e248d -rf04895089d34bddb618db8c7001c574428be10c6
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssessmentSectionViewTest.cs (.../AssessmentSectionViewTest.cs) (revision 04b631b486b742c5339deb1d5504bb13ab5e248d)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssessmentSectionViewTest.cs (.../AssessmentSectionViewTest.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -272,7 +272,7 @@
}
[Test]
- public void UpdateObserver_DataNull_MapDataNotUpdated()
+ public void Data_SetToNull_MapDataCleared()
{
// Setup
var view = new AssessmentSectionView();
@@ -292,22 +292,15 @@
view.Data = assessmentSection;
- MapData dataBeforeUpdate = map.Data;
- view.Data = null;
+ // Precondition
+ Assert.AreEqual(assessmentSection, view.Data);
- assessmentSection.ReferenceLine = new ReferenceLine();
- assessmentSection.ReferenceLine.SetGeometry(new List
- {
- new Point2D(2.0, 5.0),
- new Point2D(34.0, 2.0)
- });
-
// Call
- assessmentSection.NotifyObservers();
+ view.Data = null;
// Assert
Assert.IsNull(view.Data);
- Assert.AreEqual(dataBeforeUpdate, map.Data);
+ Assert.IsNull(view.Map.Data);
}
private class TestAssessmentSection : Observable, IAssessmentSection
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs
===================================================================
diff -u -r9b82ed0cf3ec503d05ac1e21243e9c1e1177b9b2 -rf04895089d34bddb618db8c7001c574428be10c6
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 9b82ed0cf3ec503d05ac1e21243e9c1e1177b9b2)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -67,6 +67,13 @@
DetachFromData();
data = newValue;
+
+ if (data == null)
+ {
+ Map.ResetMapData();
+ return;
+ }
+
SetDataToMap();
AttachToData();
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs
===================================================================
diff -u -r6ae3b82563c665574a6e8e1465e1fec3d8080dbe -rf04895089d34bddb618db8c7001c574428be10c6
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision 6ae3b82563c665574a6e8e1465e1fec3d8080dbe)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -86,6 +86,13 @@
DetachFromData();
data = newValue;
+
+ if (data == null)
+ {
+ Chart.ResetChartData();
+ return;
+ }
+
SetDataToChart();
AttachToData();
}
@@ -107,12 +114,9 @@
private void SetChartTitle()
{
- if (calculation != null)
- {
- chartControl.ChartTitle = calculation.Name;
- }
+ chartControl.ChartTitle = calculation != null ? calculation.Name : string.Empty;
}
-
+
private void SetDataToChart()
{
chartControl.Data.Name = Resources.PipingInputContext_NodeDisplayName;
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs
===================================================================
diff -u -re0e813ab11c3b35020a785cebf275366cd2eaf9d -rf04895089d34bddb618db8c7001c574428be10c6
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision e0e813ab11c3b35020a785cebf275366cd2eaf9d)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -210,6 +210,33 @@
}
[Test]
+ public void Data_SetToNull_MapDataCleared()
+ {
+ // Setup
+ using (var view = new PipingFailureMechanismView())
+ {
+ var mocks = new MockRepository();
+ var assessmentSectionMock = mocks.Stub();
+ mocks.ReplayAll();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+ var pipingContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSectionMock);
+
+ view.Data = pipingContext;
+
+ // Precondition
+ Assert.AreEqual(7, view.Map.Data.List.Count);
+
+ // Call
+ view.Data = null;
+
+ // Assert
+ Assert.IsNull(view.Data);
+ Assert.IsNull(view.Map.Data);
+ }
+ }
+
+ [Test]
public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_SetNewMapData()
{
// Setup
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs
===================================================================
diff -u -r6ae3b82563c665574a6e8e1465e1fec3d8080dbe -rf04895089d34bddb618db8c7001c574428be10c6
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs (.../PipingInputViewTest.cs) (revision 6ae3b82563c665574a6e8e1465e1fec3d8080dbe)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs (.../PipingInputViewTest.cs) (revision f04895089d34bddb618db8c7001c574428be10c6)
@@ -104,6 +104,42 @@
}
[Test]
+ public void Data_SetToNull_ChartDataCleared()
+ {
+ // Setup
+ using (PipingInputView view = new PipingInputView())
+ {
+ var points = new[]
+ {
+ new Point3D(1.2, 2.3, 4.0),
+ new Point3D(2.7, 2.8, 6.0)
+ };
+
+ var surfaceLine = new RingtoetsPipingSurfaceLine
+ {
+ Name = "Surface line name"
+ };
+ surfaceLine.SetGeometry(points);
+ var input = new PipingInput(new GeneralPipingInput())
+ {
+ SurfaceLine = surfaceLine
+ };
+
+ view.Data = input;
+
+ // Precondition
+ Assert.AreEqual(9, view.Chart.Data.List.Count);
+
+ // Call
+ view.Data = null;
+
+ // Assert
+ Assert.IsNull(view.Data);
+ Assert.IsNull(view.Chart.Data);
+ }
+ }
+
+ [Test]
public void Calculation_Always_SetsCalculationAndUpdateChartTitle()
{
// Setup
@@ -124,6 +160,32 @@
}
[Test]
+ public void Calculation_SetToNull_ChartTitleCleared()
+ {
+ // Setup
+ using (PipingInputView view = new PipingInputView())
+ {
+ PipingCalculationScenario calculation = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ Name = "Test name"
+ };
+
+ view.Calculation = calculation;
+
+ // Precondition
+ Assert.AreSame(calculation, view.Calculation);
+ Assert.AreEqual(calculation.Name, view.Chart.ChartTitle);
+
+ // Call
+ view.Calculation = null;
+
+ // Assert
+ Assert.IsNull(view.Calculation);
+ Assert.AreEqual(string.Empty, view.Chart.ChartTitle);
+ }
+ }
+
+ [Test]
public void Data_SetChartData_ChartDataSet()
{
// Setup
@@ -222,7 +284,7 @@
}
[Test]
- public void UpdateObservers_CalculationNotSet_ChartTitleNotUpdated()
+ public void UpdateObservers_CalculationNotSet_ChartTitleSetToEmptyString()
{
// Setup
using (PipingInputView view = new PipingInputView())
@@ -237,7 +299,7 @@
pipingInput.NotifyObservers();
// Assert
- Assert.IsNull(view.Chart.ChartTitle);
+ Assert.AreEqual(string.Empty, view.Chart.ChartTitle);
}
}
@@ -322,8 +384,13 @@
// Precondition
Assert.AreEqual(initialName, view.Chart.ChartTitle);
- view.Calculation = null;
+ var calculation2 = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ Name = initialName
+ };
+ view.Calculation = calculation2;
+
calculation.Name = updatedName;
// Call
@@ -483,53 +550,6 @@
}
[Test]
- public void UpdateObserver_DataNull_ChartDataNotUpdated()
- {
- // Setup
- using (PipingInputView view = new PipingInputView())
- {
- var points = new[]
- {
- new Point3D(1.2, 2.3, 4.0),
- new Point3D(2.7, 2.8, 6.0)
- };
-
- var surfaceLine = new RingtoetsPipingSurfaceLine
- {
- Name = "Surface line name"
- };
- surfaceLine.SetGeometry(points);
- var input = new PipingInput(new GeneralPipingInput())
- {
- SurfaceLine = surfaceLine
- };
-
- view.Data = input;
-
- ChartData dataBeforeUpdate = view.Chart.Data;
-
- view.Data = null;
-
- var points2 = new[]
- {
- new Point3D(3.5, 2.3, 8.0),
- new Point3D(6.9, 2.0, 2.0)
- };
-
- var surfaceLine2 = new RingtoetsPipingSurfaceLine();
- surfaceLine2.SetGeometry(points2);
-
- input.SurfaceLine = surfaceLine2;
-
- // Call
- input.NotifyObservers();
-
- // Assert
- Assert.AreEqual(dataBeforeUpdate, view.Chart.Data);
- }
- }
-
- [Test]
public void NotifyObservers_DataUpdatedNotifyObserversOnOldData_NoUpdateInViewData()
{
// Setup