Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -r8820d80a97281c96db5f89d5af6c74d26e0f5bca -r65ce8c5ab171b234e33e2291998c9d89276db896 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 8820d80a97281c96db5f89d5af6c74d26e0f5bca) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 65ce8c5ab171b234e33e2291998c9d89276db896) @@ -81,6 +81,7 @@ using Ringtoets.Integration.Forms.PresentationObjects; using Ringtoets.Integration.Forms.PresentationObjects.StandAlone; using Ringtoets.Integration.Forms.PropertyClasses; +using Ringtoets.Integration.Forms.PropertyClasses.StandAlone; using Ringtoets.Integration.Forms.Views; using Ringtoets.Integration.Forms.Views.SectionResultViews; using Ringtoets.Integration.Plugin.FileImporters; @@ -176,8 +177,8 @@ ), new FailureMechanismContextAssociation( typeof(PipingStructureFailureMechanism), - (mechanism, assessmentSection) => new FailureMechanismContext( - mechanism, + (mechanism, assessmentSection) => new PipingStructureFailureMechanismContext( + (PipingStructureFailureMechanism) mechanism, assessmentSection) ), new FailureMechanismContextAssociation( @@ -314,6 +315,10 @@ { CreateInstance = context => new MacroStabilityOutwardsFailureMechanismProperties(context.WrappedData) }; + yield return new PropertyInfo + { + CreateInstance = context => new PipingStructureFailureMechanismProperties(context.WrappedData) + }; yield return new PropertyInfo, CalculationGroupContextProperties> { CreateInstance = context => new CalculationGroupContextProperties(context) @@ -661,6 +666,12 @@ MacroStabilityOutwardsFailureMechanismEnabledContextMenuStrip, MacroStabilityOutwardsFailureMechanismDisabledContextMenuStrip); + yield return RingtoetsTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo( + PipingStructureFailureMechanismEnabledChildNodeObjects, + PipingStructureFailureMechanismDisabledChildNodeObjects, + PipingStructureFailureMechanismEnabledContextMenuStrip, + PipingStructureFailureMechanismDisabledContextMenuStrip); + yield return new TreeNodeInfo { Text = context => RingtoetsCommonFormsResources.FailureMechanismSections_DisplayName, @@ -1508,7 +1519,88 @@ #endregion + #region PipingStructureFailureMechanismContext TreeNodeInfo + private static object[] PipingStructureFailureMechanismEnabledChildNodeObjects(PipingStructureFailureMechanismContext 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[] PipingStructureFailureMechanismDisabledChildNodeObjects(PipingStructureFailureMechanismContext nodeData) + { + return new object[] + { + nodeData.WrappedData.NotRelevantComments + }; + } + + private static IEnumerable GetInputs(PipingStructureFailureMechanism nodeData, IAssessmentSection assessmentSection) + { + return new object[] + { + new FailureMechanismSectionsContext(nodeData, assessmentSection), + nodeData.InputComments + }; + } + + private static IEnumerable GetOutputs(PipingStructureFailureMechanism 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 PipingStructureFailureMechanismEnabledContextMenuStrip(PipingStructureFailureMechanismContext 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(PipingStructureFailureMechanismContext failureMechanismContext) + { + Gui.ViewCommands.RemoveAllViewsForItem(failureMechanismContext); + } + + private ContextMenuStrip PipingStructureFailureMechanismDisabledContextMenuStrip(PipingStructureFailureMechanismContext 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 ///