Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs =================================================================== diff -u -r323312312700f92d2d2d5b57423a36ed138c7cf9 -rf9aefa56762ac1dd731bc4bfed955d651781d598 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision 323312312700f92d2d2d5b57423a36ed138c7cf9) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingInputView.cs (.../PipingInputView.cs) (revision f9aefa56762ac1dd731bc4bfed955d651781d598) @@ -33,10 +33,9 @@ /// /// This class is a view to show the piping input. /// - public partial class PipingInputView : UserControl, IChartView, IObserver + public partial class PipingInputView : UserControl, IChartView { - private PipingInput data; - private PipingCalculationScenario calculation; + private PipingCalculationScenario data; private ChartData surfaceLineData; private ChartData entryPointData; @@ -48,30 +47,18 @@ private ChartData dikeToeAtRiverPointData; private ChartData dikeToeAtPolderPointData; + private readonly Observer calculationObserver; + private readonly Observer calculationInputObserver; + /// /// Creates a new instance of . /// public PipingInputView() { InitializeComponent(); - } - /// - /// Gets or sets the calculation the input belongs to. - /// - public PipingCalculationScenario Calculation - { - get - { - return calculation; - } - set - { - DetachFromData(); - calculation = value; - SetChartTitle(); - AttachToData(); - } + calculationObserver = new Observer(SetChartTitle); + calculationInputObserver = new Observer(SetDataToChart); } public object Data @@ -82,19 +69,19 @@ } set { - var newValue = value as PipingInput; + data = value as PipingCalculationScenario; - DetachFromData(); - data = newValue; + calculationObserver.Observable = data; + calculationInputObserver.Observable = data != null ? data.InputParameters : null; if (data == null) { Chart.ResetChartData(); return; } + SetChartTitle(); SetDataToChart(); - AttachToData(); } } @@ -106,15 +93,25 @@ } } - public void UpdateObserver() + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { - SetChartTitle(); - SetDataToChart(); + calculationObserver.Dispose(); + calculationInputObserver.Dispose(); + + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); } private void SetChartTitle() { - chartControl.ChartTitle = calculation != null ? calculation.Name : string.Empty; + chartControl.ChartTitle = data != null ? data.Name : string.Empty; } private void SetDataToChart() @@ -141,83 +138,83 @@ private ChartData GetSurfaceLineChartData() { - if (data == null || data.SurfaceLine == null) + if (data == null || data.InputParameters.SurfaceLine == null) { return ChartDataFactory.CreateEmptyLineData(Resources.RingtoetsPipingSurfaceLine_DisplayName); } - return PipingChartDataFactory.Create(data.SurfaceLine); + return PipingChartDataFactory.Create(data.InputParameters.SurfaceLine); } private ChartData GetEntryPointChartData() { - if (data == null || data.SurfaceLine == null) + if (data == null || data.InputParameters.SurfaceLine == null) { return ChartDataFactory.CreateEmptyPointData(Resources.PipingInput_EntryPointL_DisplayName); } - return PipingChartDataFactory.CreateEntryPoint(data.EntryPointL, data.SurfaceLine); + return PipingChartDataFactory.CreateEntryPoint(data.InputParameters.EntryPointL, data.InputParameters.SurfaceLine); } private ChartData GetExitPointChartData() { - if (data == null || data.SurfaceLine == null) + if (data == null || data.InputParameters.SurfaceLine == null) { return ChartDataFactory.CreateEmptyPointData(Resources.PipingInput_ExitPointL_DisplayName); } - return PipingChartDataFactory.CreateExitPoint(data.ExitPointL, data.SurfaceLine); + return PipingChartDataFactory.CreateExitPoint(data.InputParameters.ExitPointL, data.InputParameters.SurfaceLine); } private ChartData GetDitchPolderSideData() { - if (data == null || data.SurfaceLine == null || data.SurfaceLine.DitchPolderSide == null) + if (data == null || data.InputParameters.SurfaceLine == null || data.InputParameters.SurfaceLine.DitchPolderSide == null) { return ChartDataFactory.CreateEmptyPointData(PipingDataResources.CharacteristicPoint_DitchPolderSide); } - return PipingChartDataFactory.CreateDitchPolderSide(data.SurfaceLine); + return PipingChartDataFactory.CreateDitchPolderSide(data.InputParameters.SurfaceLine); } private ChartData GetBottomDitchPolderSideData() { - if (data == null || data.SurfaceLine == null || data.SurfaceLine.BottomDitchPolderSide == null) + if (data == null || data.InputParameters.SurfaceLine == null || data.InputParameters.SurfaceLine.BottomDitchPolderSide == null) { return ChartDataFactory.CreateEmptyPointData(PipingDataResources.CharacteristicPoint_BottomDitchPolderSide); } - return PipingChartDataFactory.CreateBottomDitchPolderSide(data.SurfaceLine); + return PipingChartDataFactory.CreateBottomDitchPolderSide(data.InputParameters.SurfaceLine); } private ChartData GetBottomDitchDikeSideData() { - if (data == null || data.SurfaceLine == null || data.SurfaceLine.BottomDitchDikeSide == null) + if (data == null || data.InputParameters.SurfaceLine == null || data.InputParameters.SurfaceLine.BottomDitchDikeSide == null) { return ChartDataFactory.CreateEmptyPointData(PipingDataResources.CharacteristicPoint_BottomDitchDikeSide); } - return PipingChartDataFactory.CreateBottomDitchDikeSide(data.SurfaceLine); + return PipingChartDataFactory.CreateBottomDitchDikeSide(data.InputParameters.SurfaceLine); } private ChartData GetDitchDikeSideData() { - if (data == null || data.SurfaceLine == null || data.SurfaceLine.DitchDikeSide == null) + if (data == null || data.InputParameters.SurfaceLine == null || data.InputParameters.SurfaceLine.DitchDikeSide == null) { return ChartDataFactory.CreateEmptyPointData(PipingDataResources.CharacteristicPoint_DitchDikeSide); } - return PipingChartDataFactory.CreateDitchDikeSide(data.SurfaceLine); + return PipingChartDataFactory.CreateDitchDikeSide(data.InputParameters.SurfaceLine); } private ChartData GetDikeToeAtRiverData() { - if (data == null || data.SurfaceLine == null || data.SurfaceLine.DikeToeAtRiver == null) + if (data == null || data.InputParameters.SurfaceLine == null || data.InputParameters.SurfaceLine.DikeToeAtRiver == null) { return ChartDataFactory.CreateEmptyPointData(PipingDataResources.CharacteristicPoint_DikeToeAtRiver); } - return PipingChartDataFactory.CreateDikeToeAtRiver(data.SurfaceLine); + return PipingChartDataFactory.CreateDikeToeAtRiver(data.InputParameters.SurfaceLine); } private ChartData GetDikeToeAtPolderData() { - if (data == null || data.SurfaceLine == null || data.SurfaceLine.DikeToeAtPolder == null) + if (data == null || data.InputParameters.SurfaceLine == null || data.InputParameters.SurfaceLine.DikeToeAtPolder == null) { return ChartDataFactory.CreateEmptyPointData(PipingDataResources.CharacteristicPoint_DikeToeAtPolder); } - return PipingChartDataFactory.CreateDikeToeAtPolder(data.SurfaceLine); + return PipingChartDataFactory.CreateDikeToeAtPolder(data.InputParameters.SurfaceLine); } private ChartData AddOrUpdateChartData(ChartData oldChartData, ChartData newChartData) @@ -233,31 +230,5 @@ return newChartData; } - - private void DetachFromData() - { - if (calculation != null) - { - calculation.Detach(this); - } - - if (data != null) - { - data.Detach(this); - } - } - - private void AttachToData() - { - if (calculation != null) - { - calculation.Attach(this); - } - - if (data != null) - { - data.Attach(this); - } - } } } \ No newline at end of file