Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs =================================================================== diff -u -re3d1cd330909f943d7cc655d02100cce43bade21 -r8f4a06a3283b4cf608d4de9693436de393063bf8 --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision e3d1cd330909f943d7cc655d02100cce43bade21) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 8f4a06a3283b4cf608d4de9693436de393063bf8) @@ -124,15 +124,16 @@ Func enabledChildeNodeObjects, Func disabledChildeNodeObjects, Func enabledContextMenuStrip, - Func disabledContextMenuStrip - ) - where TFailureMechanismContext : FailureMechanismContext + Func disabledContextMenuStrip) + where TFailureMechanismContext : IFailureMechanismContext { return new TreeNodeInfo { - Text = GetFailureMechanismContextText, - ForeColor = GetFailureMechanismContextForeColor, - Image = GetFailureMechanismContextImage, + Text = context => context.WrappedData.Name, + ForeColor = context => context.WrappedData.IsRelevant + ? Color.FromKnownColor(KnownColor.ControlText) + : Color.FromKnownColor(KnownColor.GrayText), + Image = context => Resources.FailureMechanismIcon, ChildNodeObjects = context => context.WrappedData.IsRelevant ? enabledChildeNodeObjects(context) : disabledChildeNodeObjects(context), @@ -286,6 +287,27 @@ builder.AddCustomItem(clearOutputItem); } + /// + /// This method adds a context menu item for changing the relevancy state of a disabled failure mechanism. + /// + /// The builder to add the context menu item to. + /// The failure mechanism context involved. + public static void AddDisabledChangeRelevancyItem(IContextMenuBuilder builder, TFailureMechanismContext failureMechanismContext) + where TFailureMechanismContext : IFailureMechanismContext + { + var changeRelevancyItem = new StrictContextMenuItem( + Resources.FailureMechanismContextMenuStrip_Is_relevant, + Resources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip, + Resources.Checkbox_empty, + (sender, args) => + { + failureMechanismContext.WrappedData.IsRelevant = true; + failureMechanismContext.WrappedData.NotifyObservers(); + }); + + builder.AddCustomItem(changeRelevancyItem); + } + # region Helper methods for CreateCalculationGroupContextTreeNodeInfo private static bool IsNestedGroup(object parentData) @@ -441,26 +463,5 @@ } #endregion - - # region Helper methods for CreateFailureMechanismContextTreeNodeInfo - - private static string GetFailureMechanismContextText(FailureMechanismContext failureMechanismContext) - { - return failureMechanismContext.WrappedData.Name; - } - - private static Image GetFailureMechanismContextImage(FailureMechanismContext failureMechanismContext) - { - return Resources.FailureMechanismIcon; - } - - private static Color GetFailureMechanismContextForeColor(FailureMechanismContext failureMechanismContext) - { - return failureMechanismContext.WrappedData.IsRelevant - ? Color.FromKnownColor(KnownColor.ControlText) - : Color.FromKnownColor(KnownColor.GrayText); - } - - # endregion } } \ No newline at end of file