Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresFailureMechanismProperties.cs
===================================================================
diff -u -rb9a59dd5f30c8de46d0cabb4e1609c09176a4246 -r5f8541d2a46730d67fc2d859caa6de2921bbc820
--- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresFailureMechanismProperties.cs (.../ClosingStructuresFailureMechanismProperties.cs) (revision b9a59dd5f30c8de46d0cabb4e1609c09176a4246)
+++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresFailureMechanismProperties.cs (.../ClosingStructuresFailureMechanismProperties.cs) (revision 5f8541d2a46730d67fc2d859caa6de2921bbc820)
@@ -19,7 +19,9 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.ComponentModel;
+using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Gui.Attributes;
using Core.Common.Gui.PropertyBag;
@@ -49,6 +51,30 @@
private const int modelFactorSubCriticalFlowPropertyIndex = 9;
private const int modelFactorInflowVolumePropertyIndex = 10;
+ private readonly IFailureMechanismPropertyChangeHandler propertyChangeHandler;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The instance to show the properties of.
+ /// Handler responsible for handling effects of a property change.
+ /// Thrown when any input parameter is null.
+ public ClosingStructuresFailureMechanismProperties(
+ ClosingStructuresFailureMechanism data,
+ IFailureMechanismPropertyChangeHandler handler)
+ {
+ if (data == null)
+ {
+ throw new ArgumentNullException("data");
+ }
+ if (handler == null)
+ {
+ throw new ArgumentNullException("handler");
+ }
+ Data = data;
+ propertyChangeHandler = handler;
+ }
+
#region Length effect parameters
[PropertyOrder(cPropertyIndex)]
@@ -75,8 +101,11 @@
}
set
{
- data.GeneralInput.N2A = value;
- data.NotifyObservers();
+ if (propertyChangeHandler.ConfirmPropertyChange())
+ {
+ data.GeneralInput.N2A = value;
+ ClearOutputAndNotifyObservers();
+ }
}
}
@@ -197,5 +226,14 @@
}
#endregion
+
+ private void ClearOutputAndNotifyObservers()
+ {
+ foreach (IObservable changedObject in propertyChangeHandler.PropertyChanged(data))
+ {
+ changedObject.NotifyObservers();
+ }
+ data.NotifyObservers();
+ }
}
}
\ No newline at end of file