Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -rf5fba362fd622350af428420089c20f80f218b78 -r95487d39e17289b2a656e34d85b808186222c0ee --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision f5fba362fd622350af428420089c20f80f218b78) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 95487d39e17289b2a656e34d85b808186222c0ee) @@ -346,7 +346,7 @@ return new object[] { new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Inputs_DisplayName, GetInputs(pipingFailureMechanism), TreeFolderCategory.Input), - new PipingCalculationGroupContext(pipingFailureMechanism.CalculationsGroup, pipingFailureMechanism.SurfaceLines, pipingFailureMechanism.SoilProfiles), + new PipingCalculationGroupContext(pipingFailureMechanism.CalculationsGroup, pipingFailureMechanism.SurfaceLines, pipingFailureMechanism.SoilProfiles, pipingFailureMechanism), new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Outputs_DisplayName, GetOutputs(pipingFailureMechanism), TreeFolderCategory.Output) }; } @@ -496,14 +496,16 @@ if (calculation != null) { childNodeObjects.Add(new PipingCalculationContext(calculation, - nodeData.AvailablePipingSurfaceLines, - nodeData.AvailablePipingSoilProfiles)); + nodeData.AvailablePipingSurfaceLines, + nodeData.AvailablePipingSoilProfiles, + nodeData.PipingFailureMechanism)); } else if (group != null) { childNodeObjects.Add(new PipingCalculationGroupContext(group, - nodeData.AvailablePipingSurfaceLines, - nodeData.AvailablePipingSoilProfiles)); + nodeData.AvailablePipingSurfaceLines, + nodeData.AvailablePipingSoilProfiles, + nodeData.PipingFailureMechanism)); } else { @@ -736,18 +738,19 @@ private static PipingFailureMechanism GetParentFailureMechanism(TreeNode sourceNode) { - PipingFailureMechanism sourceFailureMechanism; - var node = sourceNode; - while ((sourceFailureMechanism = node.Tag as PipingFailureMechanism) == null) + var calculationContext = sourceNode.Tag as PipingCalculationContext; + if (calculationContext != null) { - // No parent found, go search higher up hierarchy! - node = node.Parent; - if (node == null) - { - break; - } + return calculationContext.PipingFailureMechanism; } - return sourceFailureMechanism; + + var groupContext = sourceNode.Tag as PipingCalculationGroupContext; + if (groupContext != null) + { + return groupContext.PipingFailureMechanism; + } + + return null; } private bool PipingCalculationGroupContextCanInsert(TreeNode sourceNode, TreeNode targetNode)