Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs =================================================================== diff -u -re4313e642aa3af2d1f1ced4c397c421579cfb36d -rd4f6782b27a8e239562812f1482c1e8cb4843e64 --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs (.../StabilityStoneCoverPlugin.cs) (revision e4313e642aa3af2d1f1ced4c397c421579cfb36d) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs (.../StabilityStoneCoverPlugin.cs) (revision d4f6782b27a8e239562812f1482c1e8cb4843e64) @@ -39,6 +39,7 @@ using Ringtoets.HydraRing.IO; using Ringtoets.Revetment.Service; using Ringtoets.StabilityStoneCover.Data; +using Ringtoets.StabilityStoneCover.Forms; using Ringtoets.StabilityStoneCover.Forms.PresentationObjects; using Ringtoets.StabilityStoneCover.Forms.PropertyClasses; using Ringtoets.StabilityStoneCover.Forms.Views; @@ -235,7 +236,7 @@ #endregion - #region StabilityStoneCoverWaveCibdutuibsCalculationGroupContext + #region StabilityStoneCoverWaveConditionsCalculationGroupContext private object[] WaveConditionsCalculationGroupContextChildNodeObjects(StabilityStoneCoverWaveConditionsCalculationGroupContext nodeData) { @@ -350,18 +351,40 @@ private StrictContextMenuItem CreateGenerateWaveConditionsCalculationsItem(StabilityStoneCoverWaveConditionsCalculationGroupContext nodeData) { + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = nodeData.AssessmentSection.HydraulicBoundaryDatabase; + bool locationsAvailable = hydraulicBoundaryDatabase != null && hydraulicBoundaryDatabase.Locations.Any(); + + string stabilityStoneCoverWaveConditionsCalculationGroupContextToolTip = locationsAvailable + ? Resources.StabilityStoneCoverPlugin_CreateGenerateHydraulicBoundaryCalculationsItem_ToolTip + : Resources.StabilityStoneCover_WaveConditions_No_HRD_To_Calculate; + return new StrictContextMenuItem(RingtoetsCommonFormsResources.CalculationsGroup_Generate_calculations, - Resources.StabilityStoneCoverPlugin_CreateGenerateHydraulicBoundaryCalculationsItem_ToolTip, + stabilityStoneCoverWaveConditionsCalculationGroupContextToolTip, RingtoetsCommonFormsResources.GenerateScenariosIcon, - (sender, args) => - { - /* TODO: Implement for WTI-733 */ - }) + (sender, args) => { ShowStabilityStoneCoverHydraulicBoundaryLocationSelectionDialog(nodeData); }) { - Enabled = false + Enabled = locationsAvailable }; } + private void ShowStabilityStoneCoverHydraulicBoundaryLocationSelectionDialog(StabilityStoneCoverWaveConditionsCalculationGroupContext nodeData) + { + using (var dialog = new StabilityStoneCoverHydraulicBoundaryLocationSelectionDialog(Gui.MainWindow, + nodeData.AssessmentSection.HydraulicBoundaryDatabase.Locations)) + { + dialog.ShowDialog(); + foreach (IHydraulicBoundaryLocation location in dialog.SelectedLocations) + { + nodeData.WrappedData.Children.Add(new StabilityStoneCoverWaveConditionsCalculation()); + } + + if (dialog.SelectedLocations.Any()) + { + nodeData.NotifyObservers(); + } + } + } + private void AddWaveConditionsCalculation(StabilityStoneCoverWaveConditionsCalculationGroupContext nodeData) { var calculation = new StabilityStoneCoverWaveConditionsCalculation @@ -451,7 +474,10 @@ return builder.AddValidateCalculationItem(nodeData, c => ValidateAll( - new [] { c.WrappedData }, + new[] + { + c.WrappedData + }, c.FailureMechanism.GeneralInput, c.AssessmentSection.FailureMechanismContribution.Norm, c.AssessmentSection.HydraulicBoundaryDatabase),