Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs =================================================================== diff -u -r0fdde49cfbdc5a411fac387d6a99484f05112700 -re0e813ab11c3b35020a785cebf275366cd2eaf9d --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision 0fdde49cfbdc5a411fac387d6a99484f05112700) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision e0e813ab11c3b35020a785cebf275366cd2eaf9d) @@ -21,8 +21,10 @@ using System.Windows.Forms; using Core.Common.Base; +using Core.Components.Charting.Data; using Core.Components.Charting.Forms; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Forms.Properties; namespace Ringtoets.Piping.Forms.Views { @@ -34,6 +36,8 @@ private PipingInput data; private PipingCalculationScenario calculation; + private ChartData surfaceLineData; + /// /// Creates a new instance of . /// @@ -68,7 +72,12 @@ } set { - data = value as PipingInput; + var newValue = value as PipingInput; + + DetachFromData(); + data = newValue; + SetDataToChart(); + AttachToData(); } } @@ -83,19 +92,62 @@ public void UpdateObserver() { SetChartTitle(); + SetDataToChart(); } private void SetChartTitle() { - chartControl.ChartTitle = calculation.Name; + if (calculation != null) + { + chartControl.ChartTitle = calculation.Name; + } } + + private void SetDataToChart() + { + if (data != null) + { + surfaceLineData = AddOrUpdateChartData(surfaceLineData, GetSurfaceLineChartData()); + } + chartControl.Data.NotifyObservers(); + } + + private ChartData GetSurfaceLineChartData() + { + if (data == null || data.SurfaceLine == null) + { + return PipingChartDataFactory.CreateEmptyLineData(Resources.RingtoetsPipingSurfaceLine_DisplayName); + } + + return PipingChartDataFactory.Create(data.SurfaceLine); + } + + private ChartData AddOrUpdateChartData(ChartData oldChartData, ChartData newChartData) + { + if (oldChartData != null) + { + chartControl.Data.Remove(oldChartData); + } + if (newChartData != null) + { + chartControl.Data.Add(newChartData); + } + + return newChartData; + } + private void DetachFromData() { if (calculation != null) { calculation.Detach(this); } + + if (data != null) + { + data.Detach(this); + } } private void AttachToData() @@ -104,6 +156,11 @@ { calculation.Attach(this); } + + if (data != null) + { + data.Attach(this); + } } } } \ No newline at end of file