Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -rae95ee4069ad2b72db769ad325458379fa0d9646 -r485d2b4c361dc629baad519310d6758919bf86e1 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision ae95ee4069ad2b72db769ad325458379fa0d9646) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 485d2b4c361dc629baad519310d6758919bf86e1) @@ -521,10 +521,12 @@ if (isNestedGroup) { - builder.AddRenameItem() - .AddSeparator(); + builder.AddRenameItem(); } - builder.AddValidateAllCalculationsInGroupItem( + + builder.AddCustomItem(CreateUpdateStructureItem(context)) + .AddSeparator() + .AddValidateAllCalculationsInGroupItem( context, ValidateAll, ValidateAllDataAvailableAndGetErrorMessage) @@ -553,6 +555,34 @@ .Build(); } + private StrictContextMenuItem CreateUpdateStructureItem(ClosingStructuresCalculationGroupContext nodeData) + { + IEnumerable> calculations = nodeData.WrappedData + .GetCalculations() + .OfType>(); + + var contextMenuEnabled = true; + string toolTipText = RingtoetsCommonFormsResources.StructuresPlugin_CreateUpdateStructureItem_Update_all_calculations_with_Structure_Tooltip; + if (!calculations.Any()) + { + contextMenuEnabled = false; + toolTipText = RingtoetsCommonFormsResources.CreateUpdateContextMenuItem_No_calculations_to_update_ToolTip; + } + else if (calculations.All(c => c.InputParameters.Structure == null)) + { + contextMenuEnabled = false; + toolTipText = RingtoetsCommonFormsResources.StructuresPlugin_CreateUpdateStructureItem_No_calculations_with_Structure_Tooltip; + } + + return new StrictContextMenuItem(RingtoetsCommonFormsResources.StructuresPlugin_CreateUpdateStructureItem_Update_all_Structures, + toolTipText, + RingtoetsCommonFormsResources.UpdateItemIcon, + (o, args) => { }) + { + Enabled = contextMenuEnabled + }; + } + private StrictContextMenuItem CreateGenerateClosingStructuresCalculationsItem(ClosingStructuresCalculationGroupContext nodeData) { bool structuresAvailable = nodeData.FailureMechanism.ClosingStructures.Any();