Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DikeImporterTests.cs =================================================================== diff -u -r6945 -r6946 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DikeImporterTests.cs (.../DikeImporterTests.cs) (revision 6945) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DikeImporterTests.cs (.../DikeImporterTests.cs) (revision 6946) @@ -39,8 +39,7 @@ public class DikeImporterTests { private DataSourceContainer dataSourceContainer; - private string importFolder; - + [Test] [TestCase(DamProjectType.Design)] [TestCase(DamProjectType.DamLiveConfiguration)] Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/ProjectLoader.cs =================================================================== diff -u -r6873 -r6946 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/ProjectLoader.cs (.../ProjectLoader.cs) (revision 6873) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/ProjectLoader.cs (.../ProjectLoader.cs) (revision 6946) @@ -40,22 +40,17 @@ } } - return LoadProjectData(dataFileOrPath, CreateDefaultFailureMechanismeCalculationSpecification); + return LoadProjectData(dataFileOrPath, CreateDefaultFailureMechanismCalculationSpecification); } - public static DamFailureMechanismeCalculationSpecification CreateDefaultFailureMechanismeCalculationSpecification( + private static DamFailureMechanismeCalculationSpecification CreateDefaultFailureMechanismCalculationSpecification( DamProjectData damProjectData) { - MStabParameters mstabParameters = FactoryForStabilityTests.CreateMStabParameters(); - mstabParameters.SearchMethod = StabilitySearchMethod.Grid; - var damCalculationSpecification = new DamFailureMechanismeCalculationSpecification { - FailureMechanismSystemType = FailureMechanismSystemType.StabilityOutside, - StabilityParameters = new StabilityParameters - { - MStabParameters = mstabParameters - } + StabilityModelType = StabilityModelType.Bishop, + SearchMethod = StabilitySearchMethod.Grid, + FailureMechanismSystemType = FailureMechanismSystemType.StabilityOutside }; DamProjectCalculationSpecification.SelectedAnalysisType = AnalysisType.AdaptGeometry; return damCalculationSpecification; Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/ComputeHelper.cs =================================================================== diff -u -r6873 -r6946 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/ComputeHelper.cs (.../ComputeHelper.cs) (revision 6873) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/ComputeHelper.cs (.../ComputeHelper.cs) (revision 6946) @@ -66,8 +66,7 @@ // Specify calculation damProjectData.MaxCalculationCores = computeStabilityProjectParameters.MaxCores; damProjectData.DamProjectCalculationSpecification.CurrentSpecification.StabilityModelType = computeStabilityProjectParameters.ModelType; - damProjectData.DamProjectCalculationSpecification.CurrentSpecification.StabilityParameters - .MStabParameters.SearchMethod = StabilitySearchMethod.Grid; + damProjectData.DamProjectCalculationSpecification.CurrentSpecification.SearchMethod = StabilitySearchMethod.Grid; if (computeStabilityProjectParameters.IsStabilityInside) { damProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.StabilityInside; Index: DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationOptionsPropertyControl.cs =================================================================== diff -u -r6817 -r6946 --- DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationOptionsPropertyControl.cs (.../DamProjectCalculationOptionsPropertyControl.cs) (revision 6817) +++ DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationOptionsPropertyControl.cs (.../DamProjectCalculationOptionsPropertyControl.cs) (revision 6946) @@ -36,8 +36,8 @@ { InitializeComponent(); - BindSupport.BindTextAndValue(SearchMethodPanelControl, SearchMethodLabel, SearchMethodCombobox, p => p.SearchMethod); - BindSupport.BindTextAndValue(SearchMethodPanelControl, IsUpliftVanRunOnlyWhenUpliftOccursLabel, IsUpliftVanRunOnlyWhenUpliftOccursCheckBox, p => p.IsUpliftVanRunOnlyWhenUpliftOccurs); + BindSupport.BindTextAndValue(SearchMethodPanelControl, SearchMethodLabel, SearchMethodCombobox, p => p.SearchMethod); + BindSupport.BindTextAndValue(SearchMethodPanelControl, IsUpliftVanRunOnlyWhenUpliftOccursLabel, IsUpliftVanRunOnlyWhenUpliftOccursCheckBox, p => p.IsUpliftVanRunOnlyWhenUpliftOccurs); BindSupport.BindTextAndValue(CircleDefinitionPanelControl, UpliftVanGridCreationLabel, UpliftVanGridCreationComboBox, p => p.UpliftVanGridSizeDetermination); @@ -81,8 +81,8 @@ if (value is DamFailureMechanismeCalculationSpecification specification) { currentSpecification = specification; - BindSupport.Assign(SearchMethodPanelControl, currentSpecification.StabilityParameters.MStabParameters); - BindSupport.Assign(CircleDefinitionPanelControl, currentSpecification.StabilityParameters.MStabParameters.SlipCircleDefinition); + BindSupport.Assign(SearchMethodPanelControl, currentSpecification); + BindSupport.Assign(CircleDefinitionPanelControl, currentSpecification.SlipCircleDefinition); } } } @@ -114,26 +114,25 @@ { if (currentSpecification != null) { - currentSpecification.StabilityParameters.MStabParameters.SlipCircleDefinition.Specification = - currentSpecification; + currentSpecification.SlipCircleDefinition.Specification = currentSpecification; if (SearchMethodPanelControl.InvokeRequired) { - Action action = () => BindSupport.Assign(SearchMethodPanelControl, currentSpecification.StabilityParameters.MStabParameters); + Action action = () => BindSupport.Assign(SearchMethodPanelControl, currentSpecification); SearchMethodPanelControl.Invoke(action); } else { - BindSupport.Assign(SearchMethodPanelControl, currentSpecification.StabilityParameters.MStabParameters); + BindSupport.Assign(SearchMethodPanelControl, currentSpecification); } if (CircleDefinitionPanelControl.InvokeRequired) { - Action action = () => BindSupport.Assign(CircleDefinitionPanelControl, currentSpecification.StabilityParameters.MStabParameters.SlipCircleDefinition); + Action action = () => BindSupport.Assign(CircleDefinitionPanelControl, currentSpecification.SlipCircleDefinition); CircleDefinitionPanelControl.Invoke(action); } else { - BindSupport.Assign(CircleDefinitionPanelControl, currentSpecification.StabilityParameters.MStabParameters.SlipCircleDefinition); + BindSupport.Assign(CircleDefinitionPanelControl, currentSpecification.SlipCircleDefinition); } // if (selection.FailureMechanismSystemType != FailureMechanismSystemType.Piping && firstEdit) Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DamFailureMechanismeCalculationSpecificationTest.cs =================================================================== diff -u -r6817 -r6946 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DamFailureMechanismeCalculationSpecificationTest.cs (.../DamFailureMechanismeCalculationSpecificationTest.cs) (revision 6817) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DamFailureMechanismeCalculationSpecificationTest.cs (.../DamFailureMechanismeCalculationSpecificationTest.cs) (revision 6946) @@ -18,7 +18,7 @@ // 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 Deltares.Standard; using Deltares.Dam.Data; using NUnit.Framework; @@ -28,6 +28,24 @@ public class DamFailureMechanismeCalculationSpecificationTest { [Test] + public void Constructor_ExpectedValues() + { + // Call + var parameters = new DamFailureMechanismeCalculationSpecification(); + + // Assert + Assert.That(parameters, Is.InstanceOf>()); + Assert.That(parameters, Is.InstanceOf()); + + Assert.Multiple(() => + { + Assert.That(parameters.StabilityModelType, Is.EqualTo(StabilityModelType.UpliftVan)); + Assert.That(parameters.SearchMethod, Is.EqualTo(StabilitySearchMethod.BeeSwarm)); + Assert.That(parameters.SlipCircleDefinition, Is.Not.Null); + }); + } + + [Test] [TestCase(FailureMechanismSystemType.StabilityInside, true)] [TestCase(FailureMechanismSystemType.StabilityOutside, false)] public void GivenSpecificationWithStabilityModel_WhenIsEnabledCalledWithCalculationModel_ThenReturnsExpectedResult( @@ -120,7 +138,7 @@ }; // Call - bool isVisible = specification.IsVisible(nameof(DamFailureMechanismeCalculationSpecification.StabilityParameters)); + bool isVisible = specification.IsVisible(nameof(DamFailureMechanismeCalculationSpecification.StabilityModelType)); // Assert Assert.That(isVisible, Is.EqualTo(expectedVisibility)); Fisheye: Tag 6946 refers to a dead (removed) revision in file `DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data.Tests/MStabParametersTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r6873 -r6946 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 6873) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 6946) @@ -397,48 +397,46 @@ if (damProjectData.DamProjectCalculationSpecification != null && damProjectData.DamProjectCalculationSpecification.CurrentSpecification != null) { DamFailureMechanismeCalculationSpecification curSpec = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; - if (curSpec.StabilityParameters != null && curSpec.StabilityParameters.MStabParameters != null) + + input.StabilityParameters = new DamEngine.Io.XmlInput.StabilityParameters(); + input.StabilityParameters.SearchMethod = ConversionHelper.ConvertToInputSearchMethod(curSpec.SearchMethod); + input.StabilityParameters.IsUpliftVanRunOnlyWhenUpliftOccurs = + curSpec.IsUpliftVanRunOnlyWhenUpliftOccurs; + SlipCircleDefinition slipCircleDefinition = curSpec.SlipCircleDefinition; + if (slipCircleDefinition != null) { - input.StabilityParameters = new DamEngine.Io.XmlInput.StabilityParameters(); - input.StabilityParameters.SearchMethod = ConversionHelper.ConvertToInputSearchMethod(curSpec.StabilityParameters.MStabParameters.SearchMethod); - input.StabilityParameters.IsUpliftVanRunOnlyWhenUpliftOccurs = - curSpec.StabilityParameters.MStabParameters.IsUpliftVanRunOnlyWhenUpliftOccurs; - SlipCircleDefinition slipCircleDefinition = curSpec.StabilityParameters.MStabParameters.SlipCircleDefinition; - if (slipCircleDefinition != null) - { - input.StabilityParameters.UpliftVanGridDetermination = ConversionHelper.ConvertToInputUpliftVanGridDetermination(slipCircleDefinition.UpliftVanGridSizeDetermination); - input.StabilityParameters.BishopSearchAreaDetermination = ConversionHelper.ConvertToInputBishopSearchAreaDetermination(slipCircleDefinition.BishopSearchAreaDetermination); - input.StabilityParameters.BishopTangentLinesDistanceSpecified = true; - input.StabilityParameters.BishopTangentLinesDistance = slipCircleDefinition.BishopTangentLinesDistance; - input.StabilityParameters.BishopGridVerticalPointsCountSpecified = true; - input.StabilityParameters.BishopGridVerticalPointsCount = slipCircleDefinition.BishopGridVerticalPointCount; - input.StabilityParameters.BishopGridVerticalPointsDistanceSpecified = true; - input.StabilityParameters.BishopGridVerticalPointsDistance = slipCircleDefinition.BishopGridVerticalPointDistance; - input.StabilityParameters.BishopGridHorizontalPointsCountSpecified = true; - input.StabilityParameters.BishopGridHorizontalPointsCount = slipCircleDefinition.BishopGridHorizontalPointCount; - input.StabilityParameters.BishopGridHorizontalPointsDistanceSpecified = true; - input.StabilityParameters.BishopGridHorizontalPointsDistance = slipCircleDefinition.BishopGridHorizontalPointDistance; - input.StabilityParameters.UpliftVanTangentLinesDefinitionSpecified = true; - input.StabilityParameters.UpliftVanTangentLinesDefinition = ConversionHelper.ConvertToInputTangentLinesDefinition(slipCircleDefinition.UpliftVanTangentLinesDefinition); - input.StabilityParameters.UpliftVanTangentLinesDistanceSpecified = true; - input.StabilityParameters.UpliftVanTangentLinesDistance = slipCircleDefinition.UpliftVanTangentLinesDistance; - input.StabilityParameters.UpliftVanGridLeftVerticalPointsCountSpecified = true; - input.StabilityParameters.UpliftVanGridLeftVerticalPointsCount = slipCircleDefinition.UpliftVanLeftGridVerticalPointCount; - input.StabilityParameters.UpliftVanGridLeftVerticalPointsDistanceSpecified = true; - input.StabilityParameters.UpliftVanGridLeftVerticalPointsDistance = slipCircleDefinition.UpliftVanLeftGridVerticalPointDistance; - input.StabilityParameters.UpliftVanGridLeftHorizontalPointsCountSpecified = true; - input.StabilityParameters.UpliftVanGridLeftHorizontalPointsCount = slipCircleDefinition.UpliftVanLeftGridHorizontalPointCount; - input.StabilityParameters.UpliftVanGridLeftHorizontalPointsDistanceSpecified = true; - input.StabilityParameters.UpliftVanGridLeftHorizontalPointsDistance = slipCircleDefinition.UpliftVanLeftGridHorizontalPointDistance; - input.StabilityParameters.UpliftVanGridRightVerticalPointsCountSpecified = true; - input.StabilityParameters.UpliftVanGridRightVerticalPointsCount = slipCircleDefinition.UpliftVanRightGridVerticalPointCount; - input.StabilityParameters.UpliftVanGridRightVerticalPointsDistanceSpecified = true; - input.StabilityParameters.UpliftVanGridRightVerticalPointsDistance = slipCircleDefinition.UpliftVanRightGridVerticalPointDistance; - input.StabilityParameters.UpliftVanGridRightHorizontalPointsCountSpecified = true; - input.StabilityParameters.UpliftVanGridRightHorizontalPointsCount = slipCircleDefinition.UpliftVanRightGridHorizontalPointCount; - input.StabilityParameters.UpliftVanGridRightHorizontalPointsDistanceSpecified = true; - input.StabilityParameters.UpliftVanGridRightHorizontalPointsDistance = slipCircleDefinition.UpliftVanRightGridHorizontalPointDistance; - } + input.StabilityParameters.UpliftVanGridDetermination = ConversionHelper.ConvertToInputUpliftVanGridDetermination(slipCircleDefinition.UpliftVanGridSizeDetermination); + input.StabilityParameters.BishopSearchAreaDetermination = ConversionHelper.ConvertToInputBishopSearchAreaDetermination(slipCircleDefinition.BishopSearchAreaDetermination); + input.StabilityParameters.BishopTangentLinesDistanceSpecified = true; + input.StabilityParameters.BishopTangentLinesDistance = slipCircleDefinition.BishopTangentLinesDistance; + input.StabilityParameters.BishopGridVerticalPointsCountSpecified = true; + input.StabilityParameters.BishopGridVerticalPointsCount = slipCircleDefinition.BishopGridVerticalPointCount; + input.StabilityParameters.BishopGridVerticalPointsDistanceSpecified = true; + input.StabilityParameters.BishopGridVerticalPointsDistance = slipCircleDefinition.BishopGridVerticalPointDistance; + input.StabilityParameters.BishopGridHorizontalPointsCountSpecified = true; + input.StabilityParameters.BishopGridHorizontalPointsCount = slipCircleDefinition.BishopGridHorizontalPointCount; + input.StabilityParameters.BishopGridHorizontalPointsDistanceSpecified = true; + input.StabilityParameters.BishopGridHorizontalPointsDistance = slipCircleDefinition.BishopGridHorizontalPointDistance; + input.StabilityParameters.UpliftVanTangentLinesDefinitionSpecified = true; + input.StabilityParameters.UpliftVanTangentLinesDefinition = ConversionHelper.ConvertToInputTangentLinesDefinition(slipCircleDefinition.UpliftVanTangentLinesDefinition); + input.StabilityParameters.UpliftVanTangentLinesDistanceSpecified = true; + input.StabilityParameters.UpliftVanTangentLinesDistance = slipCircleDefinition.UpliftVanTangentLinesDistance; + input.StabilityParameters.UpliftVanGridLeftVerticalPointsCountSpecified = true; + input.StabilityParameters.UpliftVanGridLeftVerticalPointsCount = slipCircleDefinition.UpliftVanLeftGridVerticalPointCount; + input.StabilityParameters.UpliftVanGridLeftVerticalPointsDistanceSpecified = true; + input.StabilityParameters.UpliftVanGridLeftVerticalPointsDistance = slipCircleDefinition.UpliftVanLeftGridVerticalPointDistance; + input.StabilityParameters.UpliftVanGridLeftHorizontalPointsCountSpecified = true; + input.StabilityParameters.UpliftVanGridLeftHorizontalPointsCount = slipCircleDefinition.UpliftVanLeftGridHorizontalPointCount; + input.StabilityParameters.UpliftVanGridLeftHorizontalPointsDistanceSpecified = true; + input.StabilityParameters.UpliftVanGridLeftHorizontalPointsDistance = slipCircleDefinition.UpliftVanLeftGridHorizontalPointDistance; + input.StabilityParameters.UpliftVanGridRightVerticalPointsCountSpecified = true; + input.StabilityParameters.UpliftVanGridRightVerticalPointsCount = slipCircleDefinition.UpliftVanRightGridVerticalPointCount; + input.StabilityParameters.UpliftVanGridRightVerticalPointsDistanceSpecified = true; + input.StabilityParameters.UpliftVanGridRightVerticalPointsDistance = slipCircleDefinition.UpliftVanRightGridVerticalPointDistance; + input.StabilityParameters.UpliftVanGridRightHorizontalPointsCountSpecified = true; + input.StabilityParameters.UpliftVanGridRightHorizontalPointsCount = slipCircleDefinition.UpliftVanRightGridHorizontalPointCount; + input.StabilityParameters.UpliftVanGridRightHorizontalPointsDistanceSpecified = true; + input.StabilityParameters.UpliftVanGridRightHorizontalPointsDistance = slipCircleDefinition.UpliftVanRightGridHorizontalPointDistance; } } } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/MStabParameters.cs =================================================================== diff -u -r6894 -r6946 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/MStabParameters.cs (.../MStabParameters.cs) (revision 6894) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/MStabParameters.cs (.../SlipCircleDefinition.cs) (revision 6946) @@ -19,7 +19,6 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Collections; using Deltares.Standard; using Deltares.Standard.Attributes; using Deltares.Standard.EventPublisher; @@ -484,118 +483,3 @@ return mstabDesignEmbankment; } } - -public class MStabParameters : ICloneable, IVisibleEnabled, IDomain -{ - public MStabParameters() - { - Model = StabilityModelType.UpliftVan; - SearchMethod = StabilitySearchMethod.BeeSwarm; - IsUpliftVanRunOnlyWhenUpliftOccurs = true; - SlipCircleDefinition = new SlipCircleDefinition(); - } - - [Label("Model")] public StabilityModelType Model { get; set; } - - public StabilitySearchMethod SearchMethod { get; set; } - - public bool IsUpliftVanRunOnlyWhenUpliftOccurs { get; set; } - - [Validate] public SlipCircleDefinition SlipCircleDefinition { get; set; } - - public void Assign(MStabParameters mstabParameters) - { - Model = mstabParameters.Model; - SearchMethod = mstabParameters.SearchMethod; - IsUpliftVanRunOnlyWhenUpliftOccurs = mstabParameters.IsUpliftVanRunOnlyWhenUpliftOccurs; - - if (SlipCircleDefinition != null) - { - SlipCircleDefinition.Assign(mstabParameters.SlipCircleDefinition); - } - else - { - SlipCircleDefinition = null; - } - } - - public MStabParameters Clone() - { - var mstabParameters = new MStabParameters(); - - if (SlipCircleDefinition != null) - { - mstabParameters.SlipCircleDefinition = SlipCircleDefinition.Clone(); - } - - mstabParameters.Assign(this); - - return mstabParameters; - } - - #region IVisibleEnabled Members - - public bool IsEnabled(string property) - { - switch (property) - { - case "SearchMethod": - case "IsUpliftVanRunOnlyWhenUpliftOccurs": - return Location.DamProjectType == DamProjectType.Design; - default: return true; - } - } - - public bool IsVisible(string property) - { - switch (property) - { - case "Model": return true; - case "SearchMethod": - case "IsUpliftVanRunOnlyWhenUpliftOccurs": - return - (SlipCircleDefinition.Specification.FailureMechanismSystemType == FailureMechanismSystemType.StabilityInside || - SlipCircleDefinition.Specification.FailureMechanismSystemType == FailureMechanismSystemType.StabilityOutside) && - (Model == StabilityModelType.BishopUpliftVan || Model == StabilityModelType.UpliftVan); - default: return true; - } - } - - /// - /// Gets the domain to ensure proper options for the search method depending on FailureMechanismSystemType and model. - /// - /// The property. - /// - public ICollection GetDomain(string property) - { - if (property == "SearchMethod") - { - if (SlipCircleDefinition.Specification.FailureMechanismSystemType == - FailureMechanismSystemType.StabilityInside && (Model == StabilityModelType.UpliftVan || Model == StabilityModelType.BishopUpliftVan)) - { - return new[] - { - StabilitySearchMethod.BeeSwarm, - StabilitySearchMethod.Grid - }; - } - - // Make sure that grid is reset and updated too when needed. - if (SearchMethod != StabilitySearchMethod.Grid) - { - DataEventPublisher.BeforeChange(this, "SearchMethod"); - SearchMethod = StabilitySearchMethod.Grid; - DataEventPublisher.AfterChange(this, "SearchMethod"); - } - - return new[] - { - StabilitySearchMethod.Grid - }; - } - - return null; - } - - #endregion -} \ No newline at end of file Fisheye: Tag 6946 refers to a dead (removed) revision in file `DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/MStabParameters.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationSpecificationPropertyControl.cs =================================================================== diff -u -r6817 -r6946 --- DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationSpecificationPropertyControl.cs (.../DamProjectCalculationSpecificationPropertyControl.cs) (revision 6817) +++ DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationSpecificationPropertyControl.cs (.../DamProjectCalculationSpecificationPropertyControl.cs) (revision 6946) @@ -66,7 +66,7 @@ DamFailureMechanismeCalculationSpecification selection = damProjectCalculationSpecification.CurrentSpecification; if (selection != null) { - selection.StabilityParameters.MStabParameters.SlipCircleDefinition.Specification = selection; + selection.SlipCircleDefinition.Specification = selection; BindSupport.Assign(damProjectCalculationOptionsPropertyControl1, selection); if (firstEdit) { Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamFailureMechanismeCalculationSpecification.cs =================================================================== diff -u -r6822 -r6946 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamFailureMechanismeCalculationSpecification.cs (.../DamFailureMechanismeCalculationSpecification.cs) (revision 6822) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamFailureMechanismeCalculationSpecification.cs (.../DamFailureMechanismeCalculationSpecification.cs) (revision 6946) @@ -35,24 +35,42 @@ /// /// /// -public class DamFailureMechanismeCalculationSpecification : IDomain, IVisibleEnabled +public class DamFailureMechanismeCalculationSpecification : IDomain, IVisibleEnabled, ICloneable { private FailureMechanismSystemType failureMechanismSystemType; private PipingModelType pipingModelType = PipingModelType.Wti2017; - private Enum calculationModel; + private StabilityModelType stabilityModelType = StabilityModelType.UpliftVan; + private Enum calculationModel = StabilityModelType.UpliftVan; private Boolean firstTime = true; public DamFailureMechanismeCalculationSpecification() { //Todo interface failureMechanismSystemType = FailureMechanismSystemType.StabilityInside; - StabilityParameters = new StabilityParameters(); - CalculationModel = StabilityParameters.MStabParameters.Model; + SearchMethod = StabilitySearchMethod.BeeSwarm; + IsUpliftVanRunOnlyWhenUpliftOccurs = true; + SlipCircleDefinition = new SlipCircleDefinition(); ReadUserSettingsSlipCircleDefinition(); } - - [Browsable(false)] [Validate] public StabilityParameters StabilityParameters { get; set; } - + + /// + /// The search method to use for stability calculations. + /// + [Validate] public StabilitySearchMethod SearchMethod { get; set; } + + /// + /// When true, the uplift van calculation is only run when an uplift occurs. + /// + [Validate] public bool IsUpliftVanRunOnlyWhenUpliftOccurs { get; set; } + + /// + /// The slip circle definition. + /// + [Validate] public SlipCircleDefinition SlipCircleDefinition { get; set; } + + /// + /// The failure mechanism system type. + /// [Label("Failure mechanism")] [PropertyOrder(1, 0)] public FailureMechanismSystemType FailureMechanismSystemType @@ -88,6 +106,14 @@ } } + /// + /// The dam project type. + /// + [Browsable(false)] public static DamProjectType DamProjectType { get; set; } + + /// + /// The piping model type. + /// [Browsable(false)] public PipingModelType PipingModelType { @@ -104,10 +130,28 @@ } } } - - [Browsable(false)] public static DamProjectType DamProjectType { get; set; } - + /// + /// The stability model type. + /// + [Browsable(false)] + public StabilityModelType StabilityModelType + { + get + { + return stabilityModelType; + } + set + { + stabilityModelType = value; + if (failureMechanismSystemType != FailureMechanismSystemType.Piping) + { + CalculationModel = value; + } + } + } + + /// /// The calculationmodel is only needed to support the selection of the modeltype in the UI. The dropdownlist /// in the UI depends on this. This set can be filled with any proper types (for piping, stabilty etc) for any /// mechanism instead of the fixed types per mechanism. @@ -131,47 +175,44 @@ } else { - StabilityParameters.MStabParameters.Model = (StabilityModelType) value; - if (StabilityParameters.MStabParameters.Model != StabilityModelType.Bishop) + stabilityModelType = (StabilityModelType) value; + if (stabilityModelType != StabilityModelType.Bishop) { - StabilityParameters.MStabParameters.SearchMethod = StabilitySearchMethod.BeeSwarm; + SearchMethod = StabilitySearchMethod.BeeSwarm; } } DataEventPublisher.AfterChange(this, "CalculationModel"); } } - [Browsable(false)] - public StabilityModelType StabilityModelType + private void Assign(DamFailureMechanismeCalculationSpecification damFailureMechanismCalculation) { - get + failureMechanismSystemType = damFailureMechanismCalculation.FailureMechanismSystemType; + calculationModel = damFailureMechanismCalculation.CalculationModel; + pipingModelType = damFailureMechanismCalculation.PipingModelType; + stabilityModelType = damFailureMechanismCalculation.StabilityModelType; + SearchMethod = damFailureMechanismCalculation.SearchMethod; + IsUpliftVanRunOnlyWhenUpliftOccurs = damFailureMechanismCalculation.IsUpliftVanRunOnlyWhenUpliftOccurs; + if (SlipCircleDefinition != null) { - return StabilityParameters.MStabParameters.Model; + SlipCircleDefinition.Assign(damFailureMechanismCalculation.SlipCircleDefinition); } - set + else { - StabilityParameters.MStabParameters.Model = value; - if (failureMechanismSystemType != FailureMechanismSystemType.Piping) - { - CalculationModel = value; - } + SlipCircleDefinition = null; } - } - - private void Assign(DamFailureMechanismeCalculationSpecification damFailureMechanismeCalculation) - { - failureMechanismSystemType = damFailureMechanismeCalculation.FailureMechanismSystemType; - calculationModel = damFailureMechanismeCalculation.CalculationModel; - pipingModelType = damFailureMechanismeCalculation.pipingModelType; - StabilityParameters.Assign(damFailureMechanismeCalculation.StabilityParameters); - StabilityModelType = damFailureMechanismeCalculation.StabilityModelType; //assign interface } public DamFailureMechanismeCalculationSpecification Clone() { var damFailureMechanismeCalculation = new DamFailureMechanismeCalculationSpecification(); + + if (SlipCircleDefinition != null) + { + SlipCircleDefinition = SlipCircleDefinition.Clone(); + } damFailureMechanismeCalculation.Assign(this); @@ -183,28 +224,28 @@ /// private void ReadUserSettingsSlipCircleDefinition() { - if (StabilityParameters.MStabParameters.SlipCircleDefinition == null) + if (SlipCircleDefinition == null) { - StabilityParameters.MStabParameters.SlipCircleDefinition = new SlipCircleDefinition(); + SlipCircleDefinition = new SlipCircleDefinition(); } - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanTangentLinesDefinition = Settings.Default.SlipCircleUpliftVanTangentLinesDefinition; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanTangentLinesDistance = Settings.Default.SlipCircleUpliftVanTangentLinesDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.BishopSearchAreaDetermination = Settings.Default.SlipCircleBishopSearchAreaDetermination; - StabilityParameters.MStabParameters.SlipCircleDefinition.BishopTangentLinesDistance = Settings.Default.SlipCircleBishopTangentLinesDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanGridSizeDetermination = Settings.Default.SlipCircleUpliftVanGridSizeDetermination; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanLeftGridVerticalPointCount = Settings.Default.SlipCircleUpliftVanLeftGridVerticalPointCount; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanLeftGridVerticalPointDistance = Settings.Default.SlipCircleUpliftVanLeftGridVerticalPointDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanLeftGridHorizontalPointCount = Settings.Default.SlipCircleUpliftVanLeftGridHorizontalPointCount; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanLeftGridHorizontalPointDistance = Settings.Default.SlipCircleUpliftVanLeftGridHorizontalPointDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanRightGridVerticalPointCount = Settings.Default.SlipCircleUpliftVanRightGridVerticalPointCount; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanRightGridVerticalPointDistance = Settings.Default.SlipCircleUpliftVanRightGridVerticalPointDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanRightGridHorizontalPointCount = Settings.Default.SlipCircleUpliftVanRightGridHorizontalPointCount; - StabilityParameters.MStabParameters.SlipCircleDefinition.UpliftVanRightGridHorizontalPointDistance = Settings.Default.SlipCircleUpliftVanRightGridHorizontalPointDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.BishopGridVerticalPointCount = Settings.Default.SlipCircleBishopGridVerticalPointCount; - StabilityParameters.MStabParameters.SlipCircleDefinition.BishopGridVerticalPointDistance = Settings.Default.SlipCircleBishopGridVerticalPointDistance; - StabilityParameters.MStabParameters.SlipCircleDefinition.BishopGridHorizontalPointCount = Settings.Default.SlipCircleBishopGridHorizontalPointCount; - StabilityParameters.MStabParameters.SlipCircleDefinition.BishopGridHorizontalPointDistance = Settings.Default.SlipCircleBishopGridHorizontalPointDistance; + SlipCircleDefinition.UpliftVanTangentLinesDefinition = Settings.Default.SlipCircleUpliftVanTangentLinesDefinition; + SlipCircleDefinition.UpliftVanTangentLinesDistance = Settings.Default.SlipCircleUpliftVanTangentLinesDistance; + SlipCircleDefinition.BishopSearchAreaDetermination = Settings.Default.SlipCircleBishopSearchAreaDetermination; + SlipCircleDefinition.BishopTangentLinesDistance = Settings.Default.SlipCircleBishopTangentLinesDistance; + SlipCircleDefinition.UpliftVanGridSizeDetermination = Settings.Default.SlipCircleUpliftVanGridSizeDetermination; + SlipCircleDefinition.UpliftVanLeftGridVerticalPointCount = Settings.Default.SlipCircleUpliftVanLeftGridVerticalPointCount; + SlipCircleDefinition.UpliftVanLeftGridVerticalPointDistance = Settings.Default.SlipCircleUpliftVanLeftGridVerticalPointDistance; + SlipCircleDefinition.UpliftVanLeftGridHorizontalPointCount = Settings.Default.SlipCircleUpliftVanLeftGridHorizontalPointCount; + SlipCircleDefinition.UpliftVanLeftGridHorizontalPointDistance = Settings.Default.SlipCircleUpliftVanLeftGridHorizontalPointDistance; + SlipCircleDefinition.UpliftVanRightGridVerticalPointCount = Settings.Default.SlipCircleUpliftVanRightGridVerticalPointCount; + SlipCircleDefinition.UpliftVanRightGridVerticalPointDistance = Settings.Default.SlipCircleUpliftVanRightGridVerticalPointDistance; + SlipCircleDefinition.UpliftVanRightGridHorizontalPointCount = Settings.Default.SlipCircleUpliftVanRightGridHorizontalPointCount; + SlipCircleDefinition.UpliftVanRightGridHorizontalPointDistance = Settings.Default.SlipCircleUpliftVanRightGridHorizontalPointDistance; + SlipCircleDefinition.BishopGridVerticalPointCount = Settings.Default.SlipCircleBishopGridVerticalPointCount; + SlipCircleDefinition.BishopGridVerticalPointDistance = Settings.Default.SlipCircleBishopGridVerticalPointDistance; + SlipCircleDefinition.BishopGridHorizontalPointCount = Settings.Default.SlipCircleBishopGridHorizontalPointCount; + SlipCircleDefinition.BishopGridHorizontalPointDistance = Settings.Default.SlipCircleBishopGridHorizontalPointDistance; } public override string ToString() @@ -215,7 +256,7 @@ (FailureMechanismSystemType == FailureMechanismSystemType.StabilityOutside)) { //interface? - description += $" ({StabilityParameters.MStabParameters.Model})"; + description += $" ({StabilityModelType})"; } return description; @@ -231,6 +272,30 @@ return ConfigurationManager.Instance.GetAvailableMechanismModels(DamProjectType, FailureMechanismSystemType.Piping); case "FailureMechanismSystemType": return ConfigurationManager.Instance.GetAvailableFailureMechanisms(DamProjectType); + case "SearchMethod": + if (SlipCircleDefinition.Specification.FailureMechanismSystemType == + FailureMechanismSystemType.StabilityInside && + (StabilityModelType == StabilityModelType.UpliftVan || StabilityModelType == StabilityModelType.BishopUpliftVan)) + { + return new[] + { + StabilitySearchMethod.BeeSwarm, + StabilitySearchMethod.Grid + }; + } + + // Make sure that grid is reset and updated too when needed. + if (SearchMethod != StabilitySearchMethod.Grid) + { + DataEventPublisher.BeforeChange(this, "SearchMethod"); + SearchMethod = StabilitySearchMethod.Grid; + DataEventPublisher.AfterChange(this, "SearchMethod"); + } + + return new[] + { + StabilitySearchMethod.Grid + }; default: return null; } } @@ -242,13 +307,19 @@ { return false; // Disable model selection when stability outside is active, as only Bishop is currently supported. } - - return true; + + switch (property) + { + case "SearchMethod": + case "IsUpliftVanRunOnlyWhenUpliftOccurs": + return Location.DamProjectType == DamProjectType.Design; + default: return true; + } } public bool IsVisible(string property) { - if (Equals(property, nameof(StabilityParameters))) + if (Equals(property, nameof(StabilityModelType))) { switch (FailureMechanismSystemType) { @@ -258,7 +329,16 @@ default: return true; } } - - return true; + + switch (property) + { + case "SearchMethod": + case "IsUpliftVanRunOnlyWhenUpliftOccurs": + return + (SlipCircleDefinition.Specification.FailureMechanismSystemType == FailureMechanismSystemType.StabilityInside || + SlipCircleDefinition.Specification.FailureMechanismSystemType == FailureMechanismSystemType.StabilityOutside) && + (stabilityModelType == StabilityModelType.BishopUpliftVan || stabilityModelType == StabilityModelType.UpliftVan); + default: return true; + } } } \ No newline at end of file Fisheye: Tag 6946 refers to a dead (removed) revision in file `DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StabilityParameters.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6946 refers to a dead (removed) revision in file `DamClients/DamUI/trunk/src/Dam/Deltares.Dam.TestHelper/FactoryForStabilityTests.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs =================================================================== diff -u -r6873 -r6946 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 6873) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 6946) @@ -43,7 +43,6 @@ using Soil = Deltares.Geotechnics.Soils.Soil; using SoilProfile1D = Deltares.Geotechnics.Soils.SoilProfile1D; using SoilProfile2D = Deltares.DamEngine.Io.XmlInput.SoilProfile2D; -using StabilityParameters = Deltares.Dam.Data.StabilityParameters; using TimeSerie = Deltares.Dam.Data.TimeSerie; namespace Deltares.Dam.Tests.DamEngineIo @@ -911,34 +910,29 @@ private static void FillStabilityParameters(DamProjectData damProjectData) { // Note: DamProjectCalculationSpecification created and filled by FillAnalysisSpecification - DamFailureMechanismeCalculationSpecification curspec = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; - curspec.StabilityParameters = new StabilityParameters + DamFailureMechanismeCalculationSpecification currentSpecification = + damProjectData.DamProjectCalculationSpecification.CurrentSpecification; + currentSpecification.SearchMethod = StabilitySearchMethod.Grid; + currentSpecification.IsUpliftVanRunOnlyWhenUpliftOccurs = false; + currentSpecification.SlipCircleDefinition = new SlipCircleDefinition { - MStabParameters = new MStabParameters - { - SearchMethod = StabilitySearchMethod.Grid, - IsUpliftVanRunOnlyWhenUpliftOccurs = false, - SlipCircleDefinition = new SlipCircleDefinition - { - UpliftVanGridSizeDetermination = GridSizeDetermination.Specified, - BishopSearchAreaDetermination = GridSizeDetermination.Specified, - BishopGridHorizontalPointCount = 4, - BishopGridHorizontalPointDistance = 1.2, - BishopGridVerticalPointCount = 5, - BishopGridVerticalPointDistance = 1.1, - BishopTangentLinesDistance = 0.25, - UpliftVanLeftGridHorizontalPointCount = 6, - UpliftVanLeftGridHorizontalPointDistance = 0.7, - UpliftVanLeftGridVerticalPointCount = 3, - UpliftVanLeftGridVerticalPointDistance = 1.3, - UpliftVanRightGridHorizontalPointCount = 8, - UpliftVanRightGridHorizontalPointDistance = 1.76, - UpliftVanRightGridVerticalPointCount = 11, - UpliftVanRightGridVerticalPointDistance = 0.14, - UpliftVanTangentLinesDefinition = TangentLinesDefinition.OnBoundaryLines, - UpliftVanTangentLinesDistance = 0.01 - } - } + UpliftVanGridSizeDetermination = GridSizeDetermination.Specified, + BishopSearchAreaDetermination = GridSizeDetermination.Specified, + BishopGridHorizontalPointCount = 4, + BishopGridHorizontalPointDistance = 1.2, + BishopGridVerticalPointCount = 5, + BishopGridVerticalPointDistance = 1.1, + BishopTangentLinesDistance = 0.25, + UpliftVanLeftGridHorizontalPointCount = 6, + UpliftVanLeftGridHorizontalPointDistance = 0.7, + UpliftVanLeftGridVerticalPointCount = 3, + UpliftVanLeftGridVerticalPointDistance = 1.3, + UpliftVanRightGridHorizontalPointCount = 8, + UpliftVanRightGridHorizontalPointDistance = 1.76, + UpliftVanRightGridVerticalPointCount = 11, + UpliftVanRightGridVerticalPointDistance = 0.14, + UpliftVanTangentLinesDefinition = TangentLinesDefinition.OnBoundaryLines, + UpliftVanTangentLinesDistance = 0.01 }; } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs =================================================================== diff -u -r6873 -r6946 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 6873) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 6946) @@ -218,13 +218,10 @@ DamFailureMechanismeCalculationSpecification curSpec = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; if (curSpec != null) { - curSpec.StabilityParameters = new StabilityParameters(); - curSpec.StabilityParameters.MStabParameters = new MStabParameters(); - MStabParameters curStabParamas = curSpec.StabilityParameters.MStabParameters; - curStabParamas.SearchMethod = ConversionHelper.ConvertToSearchMethod(input.StabilityParameters.SearchMethod); - curStabParamas.IsUpliftVanRunOnlyWhenUpliftOccurs = input.StabilityParameters.IsUpliftVanRunOnlyWhenUpliftOccurs; - curStabParamas.SlipCircleDefinition = new SlipCircleDefinition(); - SlipCircleDefinition slipCircleDefinition = curStabParamas.SlipCircleDefinition; + curSpec.SearchMethod = ConversionHelper.ConvertToSearchMethod(input.StabilityParameters.SearchMethod); + curSpec.IsUpliftVanRunOnlyWhenUpliftOccurs = input.StabilityParameters.IsUpliftVanRunOnlyWhenUpliftOccurs; + curSpec.SlipCircleDefinition = new SlipCircleDefinition(); + SlipCircleDefinition slipCircleDefinition = curSpec.SlipCircleDefinition; slipCircleDefinition.UpliftVanGridSizeDetermination = ConversionHelper.ConvertToUpliftVanGridDetermination(input.StabilityParameters.UpliftVanGridDetermination); slipCircleDefinition.BishopSearchAreaDetermination = ConversionHelper.ConvertToBishopSearchAreaDetermination(input.StabilityParameters.BishopSearchAreaDetermination);