Index: Ringtoets/Common/src/Ringtoets.Common.Data/DikeProfiles/IUseBreakWater.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Data/DikeProfiles/IUseBreakWater.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/DikeProfiles/IUseBreakWater.cs (revision 443fcdbfa5d49c306f76bb12f054c6e6bf859e18)
@@ -0,0 +1,41 @@
+// 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 Core.Common.Base;
+
+namespace Ringtoets.Common.Data.DikeProfiles
+{
+ ///
+ /// This interface describes properties for the usage of .
+ ///
+ public interface IUseBreakWater : IObservable
+ {
+ ///
+ /// Gets or sets whether the needs to be taken into account.
+ ///
+ bool UseBreakWater { get; set; }
+
+ ///
+ /// Gets the .
+ ///
+ BreakWater BreakWater { get; }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/DikeProfiles/IUseForeshore.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Data/DikeProfiles/IUseForeshore.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/DikeProfiles/IUseForeshore.cs (revision 443fcdbfa5d49c306f76bb12f054c6e6bf859e18)
@@ -0,0 +1,42 @@
+// 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 Core.Common.Base;
+using Core.Common.Base.Data;
+
+namespace Ringtoets.Common.Data.DikeProfiles
+{
+ ///
+ /// This interface describes properties for the usage of .
+ ///
+ public interface IUseForeshore: IObservable
+ {
+ ///
+ /// Gets or sets whether the needs to be taken into account.
+ ///
+ bool UseForeshore { get; set; }
+
+ ///
+ /// Gets the geometry of the foreshore.
+ ///
+ RoundedPoint2DCollection ForeshoreGeometry { get; }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj
===================================================================
diff -u -r238800aea14ad46b711dc0520d9416a05f6693ae -r443fcdbfa5d49c306f76bb12f054c6e6bf859e18
--- Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision 238800aea14ad46b711dc0520d9416a05f6693ae)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision 443fcdbfa5d49c306f76bb12f054c6e6bf859e18)
@@ -46,6 +46,8 @@
+
+
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/UseBreakWaterProperties.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/UseBreakWaterProperties.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/UseBreakWaterProperties.cs (revision 443fcdbfa5d49c306f76bb12f054c6e6bf859e18)
@@ -0,0 +1,131 @@
+// 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.ComponentModel;
+using Core.Common.Base.Data;
+using Core.Common.Gui.Attributes;
+using Core.Common.Utils;
+using Core.Common.Utils.Attributes;
+using Core.Common.Utils.Reflection;
+using Ringtoets.Common.Data.DikeProfiles;
+using Ringtoets.Common.Forms.Properties;
+
+namespace Ringtoets.Common.Forms.PropertyClasses
+{
+ ///
+ /// ViewModel of .
+ ///
+ public class UseBreakWaterProperties
+ {
+ private const int useBreakWaterPropertyIndex = 1;
+ private const int breakWaterTypePropertyIndex = 2;
+ private const int breakWaterHeightPropertyIndex = 3;
+ private readonly IUseBreakWater data;
+ private readonly Func useBreakWaterEnabled;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The data to use for the properties.
+ /// Function to check if should be read-only or not.
+ /// Thrown if any of the input parameters is null.
+ public UseBreakWaterProperties(IUseBreakWater useBreakWaterData, Func useBreakWaterEnabled)
+ {
+ if (useBreakWaterData == null)
+ {
+ throw new ArgumentNullException("useBreakWaterData");
+ }
+ if (useBreakWaterEnabled == null)
+ {
+ throw new ArgumentNullException("useBreakWaterEnabled");
+ }
+ data = useBreakWaterData;
+ this.useBreakWaterEnabled = useBreakWaterEnabled;
+ }
+
+ [DynamicReadOnly]
+ [PropertyOrder(useBreakWaterPropertyIndex)]
+ [ResourcesDisplayName(typeof(Resources), "BreakWater_UseBreakWater_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "BreakWater_UseBreakWater_Description")]
+ public bool UseBreakWater
+ {
+ get
+ {
+ return data.UseBreakWater;
+ }
+ set
+ {
+ data.UseBreakWater = value;
+ data.NotifyObservers();
+ }
+ }
+
+ [DynamicReadOnly]
+ [PropertyOrder(breakWaterTypePropertyIndex)]
+ [ResourcesDisplayName(typeof(Resources), "BreakWaterType_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "BreakWaterType_Description")]
+ [TypeConverter(typeof(EnumTypeConverter))]
+ public BreakWaterType BreakWaterType
+ {
+ get
+ {
+ return data.BreakWater == null ? BreakWaterType.Dam : data.BreakWater.Type;
+ }
+ set
+ {
+ data.BreakWater.Type = value;
+ data.NotifyObservers();
+ }
+ }
+
+ [DynamicReadOnly]
+ [PropertyOrder(breakWaterHeightPropertyIndex)]
+ [ResourcesDisplayName(typeof(Resources), "BreakWaterHeight_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "BreakWaterHeight_Description")]
+ public RoundedDouble BreakWaterHeight
+ {
+ get
+ {
+ return data.BreakWater == null ? (RoundedDouble) double.NaN
+ : data.BreakWater.Height;
+ }
+ set
+ {
+ data.BreakWater.Height = value;
+ data.NotifyObservers();
+ }
+ }
+
+ [DynamicReadOnlyValidationMethod]
+ public bool DynamicReadOnlyValidationMethod(string propertyName)
+ {
+ return !useBreakWaterEnabled()
+ || !propertyName.Equals(TypeUtils.GetMemberName(i => i.UseBreakWater))
+ && !UseBreakWater;
+ }
+
+ public override string ToString()
+ {
+ return string.Empty;
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/UseForeshoreProperties.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/UseForeshoreProperties.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/UseForeshoreProperties.cs (revision 443fcdbfa5d49c306f76bb12f054c6e6bf859e18)
@@ -0,0 +1,97 @@
+// 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.ComponentModel;
+using System.Linq;
+using Core.Common.Base.Geometry;
+using Core.Common.Gui.Attributes;
+using Core.Common.Gui.Converters;
+using Core.Common.Utils.Attributes;
+using Ringtoets.Common.Data.DikeProfiles;
+using Ringtoets.Common.Forms.Properties;
+
+namespace Ringtoets.Common.Forms.PropertyClasses
+{
+ ///
+ /// ViewModel of .
+ ///
+ public class UseForeshoreProperties
+ {
+ private const int useForeshorePropertyIndex = 1;
+ private const int coordinatesPropertyIndex = 2;
+ private readonly IUseForeshore data;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The data to use for the properties.
+ /// Thrown if any of is null.
+ public UseForeshoreProperties(IUseForeshore useForshoreData)
+ {
+ if (useForshoreData == null)
+ {
+ throw new ArgumentNullException("useForshoreData");
+ }
+ data = useForshoreData;
+ }
+
+ [DynamicReadOnly]
+ [PropertyOrder(useForeshorePropertyIndex)]
+ [ResourcesDisplayName(typeof(Resources), "Foreshore_UseForeshore_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "Foreshore_UseForeshore_Description")]
+ public bool UseForeshore
+ {
+ get
+ {
+ return data.UseForeshore;
+ }
+ set
+ {
+ data.UseForeshore = value;
+ data.NotifyObservers();
+ }
+ }
+
+ [PropertyOrder(coordinatesPropertyIndex)]
+ [TypeConverter(typeof(ExpandableReadOnlyArrayConverter))]
+ [ResourcesDisplayName(typeof(Resources), "Geometry_Coordinates_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "Geometry_Coordinates_Description")]
+ public Point2D[] Coordinates
+ {
+ get
+ {
+ return data.ForeshoreGeometry == null ? new Point2D[0] : data.ForeshoreGeometry.ToArray();
+ }
+ }
+
+ [DynamicReadOnlyValidationMethod]
+ public bool DynamicReadOnlyValidationMethod(string propertyName)
+ {
+ return data.ForeshoreGeometry == null || data.ForeshoreGeometry.Count() < 2;
+ }
+
+ public override string ToString()
+ {
+ return string.Empty;
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj
===================================================================
diff -u -r423010168fe01b2373e9be55f047659911e670f5 -r443fcdbfa5d49c306f76bb12f054c6e6bf859e18
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 423010168fe01b2373e9be55f047659911e670f5)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 443fcdbfa5d49c306f76bb12f054c6e6bf859e18)
@@ -74,6 +74,8 @@
+
+