Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -r2ef5183542af0464fab4ebadb3a6c2c4f7ff46b7 -r8820d80a97281c96db5f89d5af6c74d26e0f5bca --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 2ef5183542af0464fab4ebadb3a6c2c4f7ff46b7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 8820d80a97281c96db5f89d5af6c74d26e0f5bca) @@ -79,6 +79,7 @@ using Ringtoets.Integration.Forms; using Ringtoets.Integration.Forms.Commands; using Ringtoets.Integration.Forms.PresentationObjects; +using Ringtoets.Integration.Forms.PresentationObjects.StandAlone; using Ringtoets.Integration.Forms.PropertyClasses; using Ringtoets.Integration.Forms.Views; using Ringtoets.Integration.Forms.Views.SectionResultViews; @@ -223,8 +224,8 @@ ), new FailureMechanismContextAssociation( typeof(MacroStabilityOutwardsFailureMechanism), - (mechanism, assessmentSection) => new FailureMechanismContext( - mechanism, + (mechanism, assessmentSection) => new MacroStabilityOutwardsFailureMechanismContext( + (MacroStabilityOutwardsFailureMechanism) mechanism, assessmentSection) ), new FailureMechanismContextAssociation( @@ -309,6 +310,10 @@ { CreateInstance = context => new StandAloneFailureMechanismProperties(context.WrappedData) }; + yield return new PropertyInfo + { + CreateInstance = context => new MacroStabilityOutwardsFailureMechanismProperties(context.WrappedData) + }; yield return new PropertyInfo, CalculationGroupContextProperties> { CreateInstance = context => new CalculationGroupContextProperties(context) @@ -650,6 +655,12 @@ StandAloneFailureMechanismEnabledContextMenuStrip, StandAloneFailureMechanismDisabledContextMenuStrip); + yield return RingtoetsTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo( + MacroStabilityOutwardsFailureMechanismEnabledChildNodeObjects, + MacroStabilityOutwardsFailureMechanismDisabledChildNodeObjects, + MacroStabilityOutwardsFailureMechanismEnabledContextMenuStrip, + MacroStabilityOutwardsFailureMechanismDisabledContextMenuStrip); + yield return new TreeNodeInfo { Text = context => RingtoetsCommonFormsResources.FailureMechanismSections_DisplayName, @@ -1416,6 +1427,88 @@ #endregion + #region MacroStabilityOutwardsFailureMechanismContext TreeNodeInfo + + private static object[] MacroStabilityOutwardsFailureMechanismEnabledChildNodeObjects(MacroStabilityOutwardsFailureMechanismContext nodeData) + { + return new object[] + { + new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Inputs_DisplayName, + GetInputs(nodeData.WrappedData, nodeData.Parent), + TreeFolderCategory.Input), + new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Outputs_DisplayName, + GetOutputs(nodeData.WrappedData), + TreeFolderCategory.Output) + }; + } + + private static object[] MacroStabilityOutwardsFailureMechanismDisabledChildNodeObjects(MacroStabilityOutwardsFailureMechanismContext nodeData) + { + return new object[] + { + nodeData.WrappedData.NotRelevantComments + }; + } + + private static IEnumerable GetInputs(MacroStabilityOutwardsFailureMechanism nodeData, IAssessmentSection assessmentSection) + { + return new object[] + { + new FailureMechanismSectionsContext(nodeData, assessmentSection), + nodeData.InputComments + }; + } + + private static IEnumerable GetOutputs(MacroStabilityOutwardsFailureMechanism nodeData) + { + var macrostabilityOutwards = nodeData as IHasSectionResults; + var failureMechanismSectionResultContexts = new object[2]; + + if (macrostabilityOutwards != null) + { + failureMechanismSectionResultContexts[0] = + new FailureMechanismSectionResultContext(macrostabilityOutwards.SectionResults, nodeData); + } + failureMechanismSectionResultContexts[1] = nodeData.OutputComments; + return failureMechanismSectionResultContexts; + } + + private ContextMenuStrip MacroStabilityOutwardsFailureMechanismEnabledContextMenuStrip(MacroStabilityOutwardsFailureMechanismContext nodeData, object parentData, TreeViewControl treeViewControl) + { + var builder = new RingtoetsContextMenuBuilder(Gui.Get(nodeData, treeViewControl)); + + return builder.AddOpenItem() + .AddSeparator() + .AddToggleRelevancyOfFailureMechanismItem(nodeData, RemoveAllViewsForItem) + .AddSeparator() + .AddCollapseAllItem() + .AddExpandAllItem() + .AddSeparator() + .AddPropertiesItem() + .Build(); + } + + private void RemoveAllViewsForItem(MacroStabilityOutwardsFailureMechanismContext failureMechanismContext) + { + Gui.ViewCommands.RemoveAllViewsForItem(failureMechanismContext); + } + + private ContextMenuStrip MacroStabilityOutwardsFailureMechanismDisabledContextMenuStrip(MacroStabilityOutwardsFailureMechanismContext nodeData, + object parentData, + TreeViewControl treeViewControl) + { + var builder = new RingtoetsContextMenuBuilder(Gui.Get(nodeData, treeViewControl)); + + return builder.AddToggleRelevancyOfFailureMechanismItem(nodeData, RemoveAllViewsForItem) + .AddSeparator() + .AddCollapseAllItem() + .AddExpandAllItem() + .Build(); + } + + #endregion + + #region CategoryTreeFolder TreeNodeInfo ///