Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresInputContextProperties.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresInputContextProperties.cs (.../ClosingStructuresInputContextProperties.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresInputContextProperties.cs (.../ClosingStructuresInputContextProperties.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -33,6 +33,7 @@ using Ringtoets.ClosingStructures.Forms.Properties; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.Common.Utils; @@ -225,7 +226,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.FactorStormDurationOpenStructure = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.FactorStormDurationOpenStructure = value, PropertyChangeHandler); } } @@ -268,7 +269,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.InflowModelType = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.InflowModelType = value, PropertyChangeHandler); } } @@ -318,11 +319,10 @@ } set { - ChangePropertyAndNotify( - () => SetProbabilityValue( - value, - data.WrappedData, - (wrappedData, parsedValue) => wrappedData.FailureProbabilityOpenStructure = parsedValue)); + PropertyChangeHelper.ChangePropertyAndNotify(() => SetProbabilityValue( + value, + data.WrappedData, + (wrappedData, parsedValue) => wrappedData.FailureProbabilityOpenStructure = parsedValue), PropertyChangeHandler); } } @@ -338,11 +338,10 @@ } set { - ChangePropertyAndNotify( - () => SetProbabilityValue( - value, - data.WrappedData, - (wrappedData, parsedValue) => wrappedData.FailureProbabilityReparation = parsedValue)); + PropertyChangeHelper.ChangePropertyAndNotify(() => SetProbabilityValue( + value, + data.WrappedData, + (wrappedData, parsedValue) => wrappedData.FailureProbabilityReparation = parsedValue), PropertyChangeHandler); } } @@ -358,7 +357,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.IdenticalApertures = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.IdenticalApertures = value, PropertyChangeHandler); } } @@ -391,11 +390,10 @@ } set { - ChangePropertyAndNotify( - () => SetProbabilityValue( - value, - data.WrappedData, - (wrappedData, parsedValue) => wrappedData.ProbabilityOrFrequencyOpenStructureBeforeFlooding = parsedValue)); + PropertyChangeHelper.ChangePropertyAndNotify(() => SetProbabilityValue( + value, + data.WrappedData, + (wrappedData, parsedValue) => wrappedData.ProbabilityOrFrequencyOpenStructureBeforeFlooding = parsedValue), PropertyChangeHandler); } } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/ChangeHandlers/ObservablePropertyChangeHandler.cs =================================================================== diff -u -r37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79 -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/ChangeHandlers/ObservablePropertyChangeHandler.cs (.../ObservablePropertyChangeHandler.cs) (revision 37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/ChangeHandlers/ObservablePropertyChangeHandler.cs (.../ObservablePropertyChangeHandler.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -94,7 +94,7 @@ private static bool ConfirmPropertyChange() { DialogResult result = MessageBox.Show( - Resources.CalculationInputPropertyChangeHandler_ConfirmPropertyChange_Confirm_change_input_parameter_and_clear_calculation_output, + Resources.ObservablePropertyChangeHandler_ConfirmPropertyChange_Confirm_change_input_parameter_and_clear_calculation_output, CoreCommonBaseResources.Confirm, MessageBoxButtons.OKCancel); Index: Ringtoets/Common/src/Ringtoets.Common.Forms/ChangeHandlers/PropertyChangeHelper.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Forms/ChangeHandlers/PropertyChangeHelper.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/ChangeHandlers/PropertyChangeHelper.cs (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -0,0 +1,63 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Common.Base; +using Ringtoets.Common.Forms.PropertyClasses; + +namespace Ringtoets.Common.Forms.ChangeHandlers +{ + /// + /// This helper can be used to easily notify observers of all objects that were affected by a value change of a property. + /// + public static class PropertyChangeHelper + { + /// + /// Changes the property value using the and then notifies the observers of the objects + /// that were affected by the change. + /// + /// The property change action. + /// The handler which is responsible for determining changes due to the property change. + public static void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyDelegate, IObservablePropertyChangeHandler changeHandler) + { + if (setPropertyDelegate == null) + { + throw new ArgumentNullException(nameof(setPropertyDelegate)); + } + if (changeHandler == null) + { + throw new ArgumentNullException(nameof(changeHandler)); + } + IEnumerable affectedObjects = changeHandler.SetPropertyValueAfterConfirmation(setPropertyDelegate); + NotifyAffectedObjects(affectedObjects); + } + + private static void NotifyAffectedObjects(IEnumerable affectedObjects) + { + foreach (IObservable affectedObject in affectedObjects) + { + affectedObject.NotifyObservers(); + } + } + + } +} \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -rcfa21301665f4ca7122f6065fd83fad20b96843e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision cfa21301665f4ca7122f6065fd83fad20b96843e) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -473,18 +473,6 @@ } /// - /// Looks up a localized string similar to Als u een parameter in deze berekening wijzigt, zal de uitvoer van deze berekening verwijderd worden. - /// - ///Weet u zeker dat u wilt doorgaan?. - /// - public static string CalculationInputPropertyChangeHandler_ConfirmPropertyChange_Confirm_change_input_parameter_and_clear_calculation_output { - get { - return ResourceManager.GetString("CalculationInputPropertyChangeHandler_ConfirmPropertyChange_Confirm_change_input_" + - "parameter_and_clear_calculation_output", resourceCulture); - } - } - - /// /// Looks up a localized string similar to De berekende kans van voorkomen van het berekende resultaat.. /// public static string CalculationOutput_CalculatedProbability_Description { @@ -1587,6 +1575,18 @@ } /// + /// Looks up a localized string similar to Als u een parameter in deze berekening wijzigt, zal de uitvoer van deze berekening verwijderd worden. + /// + ///Weet u zeker dat u wilt doorgaan?. + /// + public static string ObservablePropertyChangeHandler_ConfirmPropertyChange_Confirm_change_input_parameter_and_clear_calculation_output { + get { + return ResourceManager.GetString("ObservablePropertyChangeHandler_ConfirmPropertyChange_Confirm_change_input_parame" + + "ter_and_clear_calculation_output", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Oriëntatie [°]. /// public static string Orientation_DisplayName { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -rcfa21301665f4ca7122f6065fd83fad20b96843e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision cfa21301665f4ca7122f6065fd83fad20b96843e) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -903,7 +903,7 @@ De bijdrage van dit toetsspoor is nul. - + Als u een parameter in deze berekening wijzigt, zal de uitvoer van deze berekening verwijderd worden. Weet u zeker dat u wilt doorgaan? Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/DistributionPropertiesBase.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/DistributionPropertiesBase.cs (.../DistributionPropertiesBase.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/DistributionPropertiesBase.cs (.../DistributionPropertiesBase.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -27,6 +27,7 @@ using Core.Common.Gui.PropertyBag; using Core.Common.Utils.Attributes; using Ringtoets.Common.Data.Probabilistics; +using Ringtoets.Common.Forms.ChangeHandlers; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Common.Forms.PropertyClasses @@ -104,7 +105,7 @@ throw new InvalidOperationException("Mean is set to be read-only."); } - ChangePropertyAndNotify(() => data.Mean = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.Mean = value, changeHandler); } } @@ -124,7 +125,7 @@ throw new InvalidOperationException("StandardDeviation is set to be read-only."); } - ChangePropertyAndNotify(() => data.StandardDeviation = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.StandardDeviation = value, changeHandler); } } @@ -141,19 +142,5 @@ { return $"{Mean} ({RingtoetsCommonFormsResources.NormalDistribution_StandardDeviation_DisplayName} = {StandardDeviation})"; } - - private void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyValue) - { - IEnumerable affectedObjects = changeHandler.SetPropertyValueAfterConfirmation(setPropertyValue); - NotifyAffectedObjects(affectedObjects); - } - - private static void NotifyAffectedObjects(IEnumerable affectedObjects) - { - foreach (IObservable affectedObject in affectedObjects) - { - affectedObject.NotifyObservers(); - } - } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresInputBaseProperties.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresInputBaseProperties.cs (.../StructuresInputBaseProperties.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresInputBaseProperties.cs (.../StructuresInputBaseProperties.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -34,6 +34,7 @@ using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.Properties; @@ -215,21 +216,6 @@ /// protected abstract void AfterSettingStructure(); - protected void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyValue) - { - IEnumerable affectedObjects = PropertyChangeHandler.SetPropertyValueAfterConfirmation(setPropertyValue); - - NotifyAffectedObjects(affectedObjects); - } - - private static void NotifyAffectedObjects(IEnumerable affectedObjects) - { - foreach (IObservable affectedObject in affectedObjects) - { - affectedObject.NotifyObservers(); - } - } - /// /// Class holding the various construction parameters for . /// @@ -338,11 +324,11 @@ } set { - ChangePropertyAndNotify(() => + PropertyChangeHelper.ChangePropertyAndNotify(() => { data.WrappedData.Structure = value; AfterSettingStructure(); - }); + }, PropertyChangeHandler); } } @@ -373,7 +359,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.StructureNormalOrientation = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.StructureNormalOrientation = value, PropertyChangeHandler); } } @@ -469,12 +455,10 @@ } set { - ChangePropertyAndNotify( - () => SetProbabilityValue( - value, - data.WrappedData, - (wrappedData, parsedValue) => wrappedData.FailureProbabilityStructureWithErosion = parsedValue) - ); + PropertyChangeHelper.ChangePropertyAndNotify(() => SetProbabilityValue( + value, + data.WrappedData, + (wrappedData, parsedValue) => wrappedData.FailureProbabilityStructureWithErosion = parsedValue), PropertyChangeHandler); } } @@ -491,7 +475,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.ForeshoreProfile = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.ForeshoreProfile = value, PropertyChangeHandler); } } @@ -543,7 +527,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation, PropertyChangeHandler); } } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/VariationCoefficientDistributionPropertiesBase.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/VariationCoefficientDistributionPropertiesBase.cs (.../VariationCoefficientDistributionPropertiesBase.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/VariationCoefficientDistributionPropertiesBase.cs (.../VariationCoefficientDistributionPropertiesBase.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -20,13 +20,12 @@ // All rights reserved. using System; -using System.Collections.Generic; -using Core.Common.Base; using Core.Common.Base.Data; using Core.Common.Gui.Attributes; using Core.Common.Gui.PropertyBag; using Core.Common.Utils.Attributes; using Ringtoets.Common.Data.Probabilistics; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Properties; namespace Ringtoets.Common.Forms.PropertyClasses @@ -105,7 +104,7 @@ throw new InvalidOperationException("Mean is set to be read-only."); } - ChangePropertyAndNotify(() => data.Mean = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.Mean = value, changeHandler); } } @@ -125,7 +124,7 @@ throw new InvalidOperationException($"{nameof(CoefficientOfVariation)} is set to be read-only."); } - ChangePropertyAndNotify(() => data.CoefficientOfVariation = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.CoefficientOfVariation = value, changeHandler); } } @@ -148,19 +147,5 @@ return data == null ? string.Empty : $"{Mean} ({Resources.Distribution_VariationCoefficient_DisplayName} = {CoefficientOfVariation})"; } - - private void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyValue) - { - IEnumerable affectedObjects = changeHandler.SetPropertyValueAfterConfirmation(setPropertyValue); - NotifyAffectedObjects(affectedObjects); - } - - private static void NotifyAffectedObjects(IEnumerable affectedObjects) - { - foreach (IObservable affectedObject in affectedObjects) - { - affectedObject.NotifyObservers(); - } - } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj =================================================================== diff -u -rcfa21301665f4ca7122f6065fd83fad20b96843e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision cfa21301665f4ca7122f6065fd83fad20b96843e) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -49,6 +49,7 @@ + Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/ChangeHandlers/PropertyChangeHelperTest.cs =================================================================== diff -u --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/ChangeHandlers/PropertyChangeHelperTest.cs (revision 0) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/ChangeHandlers/PropertyChangeHelperTest.cs (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -0,0 +1,110 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using Core.Common.Base; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Forms.ChangeHandlers; +using Ringtoets.Common.Forms.PropertyClasses; + +namespace Ringtoets.Common.Forms.Test.ChangeHandlers +{ + [TestFixture] + public class PropertyChangeHelperTest + { + [Test] + public void ChangePropertyAndNotify_WithoutPropertySetDelegate_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var handler = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate test = () => PropertyChangeHelper.ChangePropertyAndNotify(null, handler); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("setPropertyDelegate", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void ChangePropertyAndNotify_WithoutChangeHandler_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => PropertyChangeHelper.ChangePropertyAndNotify(() => { }, null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("changeHandler", exception.ParamName); + } + + [Test] + public void ChangePropertyAndNotify_ChangeHasNoAffectedObjects_HandlerUsedForSetAction() + { + // Setup + SetObservablePropertyValueDelegate setAction = () => { }; + + var mocks = new MockRepository(); + var handler = mocks.StrictMock(); + handler.Expect(h => h.SetPropertyValueAfterConfirmation(setAction)).Return(Enumerable.Empty()); + mocks.ReplayAll(); + + // Call + PropertyChangeHelper.ChangePropertyAndNotify(setAction, handler); + + // Assert + mocks.VerifyAll(); + } + + [Test] + public void ChangePropertyAndNotify_ChangeHasAffectedObjects_AffectedObjectsNotified() + { + // Setup + SetObservablePropertyValueDelegate setAction = () => { }; + + var mocks = new MockRepository(); + var observableA = mocks.StrictMock(); + observableA.Expect(o => o.NotifyObservers()); + var observableB = mocks.StrictMock(); + observableB.Expect(o => o.NotifyObservers()); + + var affectedObjects = new[] + { + observableA, + observableB + }; + + var handler = mocks.StrictMock(); + handler.Expect(h => h.SetPropertyValueAfterConfirmation(setAction)).Return(affectedObjects); + mocks.ReplayAll(); + + // Call + PropertyChangeHelper.ChangePropertyAndNotify(setAction, handler); + + // Assert + mocks.VerifyAll(); + } + } +} \ No newline at end of file Fisheye: Tag d5a0bce3d53deb3aef237c365018096e9bc83bb1 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/ConfirmingDistributionPropertiesBaseTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d5a0bce3d53deb3aef237c365018096e9bc83bb1 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/ConfirmingLogNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d5a0bce3d53deb3aef237c365018096e9bc83bb1 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/ConfirmingNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d5a0bce3d53deb3aef237c365018096e9bc83bb1 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/ConfirmingVariationCoefficientDistributionPropertiesBaseTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d5a0bce3d53deb3aef237c365018096e9bc83bb1 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/ConfirmingVariationCoefficientLogNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d5a0bce3d53deb3aef237c365018096e9bc83bb1 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/ConfirmingVariationCoefficientNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag f861839e975251253e2ffd7bc3f0a1839b85534e refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/DistributionPropertiesBaseTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag f861839e975251253e2ffd7bc3f0a1839b85534e refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/LogNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag f861839e975251253e2ffd7bc3f0a1839b85534e refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/NormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag f861839e975251253e2ffd7bc3f0a1839b85534e refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/VariationCoefficientDistributionPropertiesBaseTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag f861839e975251253e2ffd7bc3f0a1839b85534e refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/VariationCoefficientLogNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag f861839e975251253e2ffd7bc3f0a1839b85534e refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/VariationCoefficientNormalDistributionPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -65,6 +65,7 @@ + @@ -81,14 +82,14 @@ - - - - - + + + + + - + Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/GrassCoverErosionInwardsInputContextProperties.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/GrassCoverErosionInwardsInputContextProperties.cs (.../GrassCoverErosionInwardsInputContextProperties.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/GrassCoverErosionInwardsInputContextProperties.cs (.../GrassCoverErosionInwardsInputContextProperties.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -32,6 +32,7 @@ using Core.Common.Utils; using Core.Common.Utils.Attributes; using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.PropertyClasses; @@ -98,13 +99,13 @@ } set { - ChangePropertyAndNotify(() => + PropertyChangeHelper.ChangePropertyAndNotify(() => { data.WrappedData.DikeProfile = value; GrassCoverErosionInwardsHelper.UpdateCalculationToSectionResultAssignments( data.FailureMechanism.SectionResults, data.FailureMechanism.Calculations.Cast()); - }); + }, propertyChangeHandler); } } @@ -136,7 +137,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.Orientation = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.Orientation = value, propertyChangeHandler); } } @@ -200,7 +201,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.DikeHeight = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.DikeHeight = value, propertyChangeHandler); } } @@ -217,7 +218,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.DikeHeightCalculationType = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.DikeHeightCalculationType = value, propertyChangeHandler); } } @@ -253,8 +254,7 @@ } set { - ChangePropertyAndNotify( - () => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation, propertyChangeHandler); } } @@ -280,20 +280,5 @@ return SelectableHydraulicBoundaryLocationHelper.GetSortedSelectableHydraulicBoundaryLocations( data.AvailableHydraulicBoundaryLocations, calculationLocation); } - - private void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyValue) - { - IEnumerable affectedObjects = propertyChangeHandler.SetPropertyValueAfterConfirmation(setPropertyValue); - - NotifyAffectedObjects(affectedObjects); - } - - private static void NotifyAffectedObjects(IEnumerable affectedObjects) - { - foreach (IObservable affectedObject in affectedObjects) - { - affectedObject.NotifyObservers(); - } - } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs =================================================================== diff -u -r37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79 -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -30,6 +30,7 @@ using Core.Common.Gui.PropertyBag; using Core.Common.Utils.Attributes; using Core.Common.Utils.Reflection; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.PropertyClasses; @@ -174,7 +175,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation, propertyChangeHandler); } } @@ -191,7 +192,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.AssessmentLevel = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.AssessmentLevel = value, propertyChangeHandler); } } @@ -207,7 +208,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.UseAssessmentLevelManualInput = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.UseAssessmentLevelManualInput = value, propertyChangeHandler); } } @@ -276,11 +277,11 @@ { if (!ReferenceEquals(value, data.WrappedData.SurfaceLine)) { - ChangePropertyAndNotify(() => + PropertyChangeHelper.ChangePropertyAndNotify(() => { data.WrappedData.SurfaceLine = value; PipingInputService.SetMatchingStochasticSoilModel(data.WrappedData, GetAvailableStochasticSoilModels()); - }); + }, propertyChangeHandler); } } } @@ -300,11 +301,11 @@ { if (!ReferenceEquals(value, data.WrappedData.StochasticSoilModel)) { - ChangePropertyAndNotify(() => + PropertyChangeHelper.ChangePropertyAndNotify(() => { data.WrappedData.StochasticSoilModel = value; PipingInputService.SyncStochasticSoilProfileWithStochasticSoilModel(data.WrappedData); - }); + }, propertyChangeHandler); } } } @@ -324,7 +325,7 @@ { if (!ReferenceEquals(value, data.WrappedData.StochasticSoilProfile)) { - ChangePropertyAndNotify(() => data.WrappedData.StochasticSoilProfile = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.StochasticSoilProfile = value, propertyChangeHandler); } } } @@ -341,7 +342,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.EntryPointL = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.EntryPointL = value, propertyChangeHandler); } } @@ -357,7 +358,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.ExitPointL = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.ExitPointL = value, propertyChangeHandler); } } @@ -454,20 +455,5 @@ } #endregion - - private void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyValue) - { - IEnumerable affectedObjects = propertyChangeHandler.SetPropertyValueAfterConfirmation(setPropertyValue); - - NotifyAffectedObjects(affectedObjects); - } - - private static void NotifyAffectedObjects(IEnumerable affectedObjects) - { - foreach (var affectedObject in affectedObjects) - { - affectedObject.NotifyObservers(); - } - } } } \ No newline at end of file Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Forms/PropertyClasses/WaveConditionsInputContextProperties.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/Revetment/src/Ringtoets.Revetment.Forms/PropertyClasses/WaveConditionsInputContextProperties.cs (.../WaveConditionsInputContextProperties.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.Forms/PropertyClasses/WaveConditionsInputContextProperties.cs (.../WaveConditionsInputContextProperties.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -33,6 +33,7 @@ using Core.Common.Utils; using Core.Common.Utils.Attributes; using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.PropertyClasses; @@ -127,7 +128,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.UpperBoundaryRevetment = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.UpperBoundaryRevetment = value, propertyChangeHandler); } } @@ -143,7 +144,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.LowerBoundaryRevetment = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.LowerBoundaryRevetment = value, propertyChangeHandler); } } @@ -159,7 +160,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.UpperBoundaryWaterLevels = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.UpperBoundaryWaterLevels = value, propertyChangeHandler); } } @@ -175,7 +176,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.LowerBoundaryWaterLevels = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.LowerBoundaryWaterLevels = value, propertyChangeHandler); } } @@ -192,7 +193,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.StepSize = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.StepSize = value, propertyChangeHandler); } } @@ -236,7 +237,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.Orientation = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.Orientation = value, propertyChangeHandler); } } @@ -287,7 +288,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.ForeshoreProfile = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.ForeshoreProfile = value, propertyChangeHandler); } } @@ -308,7 +309,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.HydraulicBoundaryLocation = value.HydraulicBoundaryLocation, propertyChangeHandler); } } @@ -323,20 +324,5 @@ return SelectableHydraulicBoundaryLocationHelper.GetSortedSelectableHydraulicBoundaryLocations( data.HydraulicBoundaryLocations, referenceLocation); } - - private void ChangePropertyAndNotify(SetObservablePropertyValueDelegate setPropertyValue) - { - IEnumerable affectedObjects = propertyChangeHandler.SetPropertyValueAfterConfirmation(setPropertyValue); - - NotifyAffectedObjects(affectedObjects); - } - - private static void NotifyAffectedObjects(IEnumerable affectedObjects) - { - foreach (var affectedObject in affectedObjects) - { - affectedObject.NotifyObservers(); - } - } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs =================================================================== diff -u -rf861839e975251253e2ffd7bc3f0a1839b85534e -rd5a0bce3d53deb3aef237c365018096e9bc83bb1 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs (.../StabilityPointStructuresInputContextProperties.cs) (revision f861839e975251253e2ffd7bc3f0a1839b85534e) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs (.../StabilityPointStructuresInputContextProperties.cs) (revision d5a0bce3d53deb3aef237c365018096e9bc83bb1) @@ -29,6 +29,7 @@ using Core.Common.Utils.Attributes; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Forms.ChangeHandlers; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.Common.Utils; @@ -195,7 +196,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.VolumicWeightWater = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.VolumicWeightWater = value, PropertyChangeHandler); } } @@ -273,7 +274,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.FactorStormDurationOpenStructure = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.FactorStormDurationOpenStructure = value, PropertyChangeHandler); } } @@ -303,7 +304,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.InflowModelType = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.InflowModelType = value, PropertyChangeHandler); } } @@ -320,7 +321,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.LoadSchematizationType = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.LoadSchematizationType = value, PropertyChangeHandler); } } @@ -469,11 +470,10 @@ } set { - ChangePropertyAndNotify( - () => SetProbabilityValue( - value, - data.WrappedData, - (wrappedData, parsedValue) => wrappedData.FailureProbabilityRepairClosure = parsedValue)); + PropertyChangeHelper.ChangePropertyAndNotify(() => SetProbabilityValue( + value, + data.WrappedData, + (wrappedData, parsedValue) => wrappedData.FailureProbabilityRepairClosure = parsedValue), PropertyChangeHandler); } } @@ -537,7 +537,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.LevellingCount = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.LevellingCount = value, PropertyChangeHandler); } } @@ -553,11 +553,10 @@ } set { - ChangePropertyAndNotify( - () => SetProbabilityValue( - value, - data.WrappedData, - (wrappedData, parsedValue) => wrappedData.ProbabilityCollisionSecondaryStructure = parsedValue)); + PropertyChangeHelper.ChangePropertyAndNotify(() => SetProbabilityValue( + value, + data.WrappedData, + (wrappedData, parsedValue) => wrappedData.ProbabilityCollisionSecondaryStructure = parsedValue), PropertyChangeHandler); } } @@ -589,7 +588,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.EvaluationLevel = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.EvaluationLevel = value, PropertyChangeHandler); } } @@ -605,7 +604,7 @@ } set { - ChangePropertyAndNotify(() => data.WrappedData.VerticalDistance = value); + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.VerticalDistance = value, PropertyChangeHandler); } }