Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs
===================================================================
diff -u -r87445dcecde875ada5513431df8ca2d01a57f742 -r5e9fd91bb55d97ee46d4446960dfa7f63b0d48cf
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 87445dcecde875ada5513431df8ca2d01a57f742)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 5e9fd91bb55d97ee46d4446960dfa7f63b0d48cf)
@@ -23,7 +23,6 @@
using System.Linq;
using System.Windows.Forms;
using Core.Common.Controls.TreeView;
-using Core.Common.Gui;
using Core.Common.Gui.ContextMenu;
using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.FailureMechanism;
@@ -45,13 +44,11 @@
///
/// The type of calculation group context to create a object for.
/// The function for obtaining child node objects.
- /// The action for adding a calculation to the calculation group.
- /// The gui to use.
+ /// The function for obtaining the context menu strip.
/// A object.
public static TreeNodeInfo CreateCalculationGroupContextTreeNodeInfo(
Func childNodeObjects,
- Action addCalculation,
- IGui gui)
+ Func contextMenuStrip)
where TCalculationGroupContext : ICalculationContext
{
return new TreeNodeInfo
@@ -60,7 +57,7 @@
Image = context => Resources.GeneralFolderIcon,
EnsureVisibleOnCreate = context => true,
ChildNodeObjects = childNodeObjects,
- ContextMenuStrip = (context, parentData, treeViewControl) => ContextMenuStrip(context, parentData, treeViewControl, addCalculation, gui),
+ ContextMenuStrip = contextMenuStrip,
CanRename = (context, parentData) => IsNestedGroup(parentData),
OnNodeRenamed = (context, newName) =>
{
@@ -128,41 +125,6 @@
return parentData is ICalculationContext;
}
- private static ContextMenuStrip ContextMenuStrip(TCalculationGroupContext nodeData, object parentData, TreeViewControl treeViewControl, Action addCalculation, IGui gui) where TCalculationGroupContext : ICalculationContext
- {
- var group = nodeData.WrappedData;
- var builder = gui.Get(nodeData, treeViewControl);
- var isNestedGroup = IsNestedGroup(parentData);
-
- if (!isNestedGroup)
- {
- builder
- .AddOpenItem()
- .AddSeparator();
- }
-
- AddCreateCalculationGroupItem(builder, group);
- AddCreateCalculationItem(builder, nodeData, addCalculation);
- builder.AddSeparator();
-
- if (isNestedGroup)
- {
- builder.AddRenameItem();
- builder.AddDeleteItem();
- builder.AddSeparator();
- }
-
- return builder
- .AddImportItem()
- .AddExportItem()
- .AddSeparator()
- .AddExpandAllItem()
- .AddCollapseAllItem()
- .AddSeparator()
- .AddPropertiesItem()
- .Build();
- }
-
private static bool CanDropOrInsert(object draggedData, object targetData)
{
var calculationContext = draggedData as ICalculationContext;
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs
===================================================================
diff -u -r87445dcecde875ada5513431df8ca2d01a57f742 -r5e9fd91bb55d97ee46d4446960dfa7f63b0d48cf
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 87445dcecde875ada5513431df8ca2d01a57f742)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 5e9fd91bb55d97ee46d4446960dfa7f63b0d48cf)
@@ -70,7 +70,7 @@
FailureMechanismContextMenuStrip,
Gui);
- yield return CalculationTreeNodeInfoFactory.CreateCalculationGroupContextTreeNodeInfo(CalculationGroupContextChildNodeObjects, context => AddCalculation(context.FailureMechanism, context.WrappedData), Gui);
+ yield return CalculationTreeNodeInfoFactory.CreateCalculationGroupContextTreeNodeInfo(CalculationGroupContextChildNodeObjects, CalculationGroupContextContextMenuStrip);
yield return new TreeNodeInfo
{
@@ -337,6 +337,41 @@
return childNodeObjects.ToArray();
}
+ private ContextMenuStrip CalculationGroupContextContextMenuStrip(GrassCoverErosionInwardsCalculationGroupContext nodeData, object parentData, TreeViewControl treeViewControl)
+ {
+ var group = nodeData.WrappedData;
+ var builder = Gui.Get(nodeData, treeViewControl);
+ var isNestedGroup = parentData is GrassCoverErosionInwardsCalculationGroupContext;
+
+ if (!isNestedGroup)
+ {
+ builder
+ .AddOpenItem()
+ .AddSeparator();
+ }
+
+ CalculationTreeNodeInfoFactory.AddCreateCalculationGroupItem(builder, group);
+ CalculationTreeNodeInfoFactory.AddCreateCalculationItem(builder, nodeData, context => AddCalculation(context.FailureMechanism, context.WrappedData));
+ builder.AddSeparator();
+
+ if (isNestedGroup)
+ {
+ builder.AddRenameItem();
+ builder.AddDeleteItem();
+ builder.AddSeparator();
+ }
+
+ return builder
+ .AddImportItem()
+ .AddExportItem()
+ .AddSeparator()
+ .AddExpandAllItem()
+ .AddCollapseAllItem()
+ .AddSeparator()
+ .AddPropertiesItem()
+ .Build();
+ }
+
#endregion
}
}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -r87445dcecde875ada5513431df8ca2d01a57f742 -r5e9fd91bb55d97ee46d4446960dfa7f63b0d48cf
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 87445dcecde875ada5513431df8ca2d01a57f742)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 5e9fd91bb55d97ee46d4446960dfa7f63b0d48cf)
@@ -235,9 +235,8 @@
private TreeNodeInfo CreatePipingCalculationGroupContextTreeNodeInfo()
{
- var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateCalculationGroupContextTreeNodeInfo(PipingCalculationGroupContextChildNodeObjects, null, Gui);
+ var treeNodeInfo = CalculationTreeNodeInfoFactory.CreateCalculationGroupContextTreeNodeInfo(PipingCalculationGroupContextChildNodeObjects, PipingCalculationGroupContextContextMenuStrip);
- treeNodeInfo.ContextMenuStrip = PipingCalculationGroupContextContextMenuStrip;
treeNodeInfo.OnNodeRemoved = PipingCalculationGroupContextOnNodeRemoved;
return treeNodeInfo;
@@ -610,40 +609,10 @@
private ContextMenuStrip PipingCalculationGroupContextContextMenuStrip(PipingCalculationGroupContext nodeData, object parentData, TreeViewControl treeViewControl)
{
var group = nodeData.WrappedData;
- var addCalculationGroupItem = new StrictContextMenuItem(
- RingtoetsCommonFormsResources.CalculationGroup_Add_CalculationGroup,
- RingtoetsCommonFormsResources.CalculationGroup_Add_CalculationGroup_ToolTip,
- RingtoetsCommonFormsResources.AddFolderIcon, (o, args) =>
- {
- var newGroup = new CalculationGroup
- {
- Name = NamingHelper.GetUniqueName(group.Children, RingtoetsCommonDataResources.CalculationGroup_DefaultName, c => c.Name)
- };
- group.Children.Add(newGroup);
- nodeData.WrappedData.NotifyObservers();
- });
-
- var addCalculationItem = new StrictContextMenuItem(
- RingtoetsCommonFormsResources.CalculationGroup_Add_Calculation,
- PipingFormsResources.PipingCalculationGroup_Add_PipingCalculation_ToolTip,
- PipingFormsResources.PipingIcon, (o, args) =>
- {
- var calculation = new PipingCalculationScenario(nodeData.FailureMechanism.GeneralInput, nodeData.FailureMechanism.NormProbabilityInput)
- {
- Name = NamingHelper.GetUniqueName(group.Children, PipingDataResources.PipingCalculation_DefaultName, c => c.Name)
- };
-
- group.Children.Add(calculation);
- nodeData.WrappedData.NotifyObservers();
- });
-
var generateCalculationsItem = CreateGeneratePipingCalculationsItem(nodeData);
-
var validateAllItem = CreateValidateAllItem(group);
-
var calculateAllItem = CreateCalculateAllItem(group);
-
var clearAllItem = new StrictContextMenuItem(
RingtoetsCommonFormsResources.Clear_all_output,
PipingFormsResources.PipingCalculationGroup_ClearOutput_ToolTip,
@@ -678,10 +647,11 @@
.AddSeparator();
}
+ CalculationTreeNodeInfoFactory.AddCreateCalculationGroupItem(builder, group);
+ CalculationTreeNodeInfoFactory.AddCreateCalculationItem(builder, nodeData, AddCalculationScenario);
+ builder.AddSeparator();
+
builder
- .AddCustomItem(addCalculationGroupItem)
- .AddCustomItem(addCalculationItem)
- .AddSeparator()
.AddCustomItem(validateAllItem)
.AddCustomItem(calculateAllItem)
.AddCustomItem(clearAllItem)
@@ -715,6 +685,17 @@
.Build();
}
+ private static void AddCalculationScenario(PipingCalculationGroupContext nodeData)
+ {
+ var calculation = new PipingCalculationScenario(nodeData.FailureMechanism.GeneralInput, nodeData.FailureMechanism.NormProbabilityInput)
+ {
+ Name = NamingHelper.GetUniqueName(nodeData.WrappedData.Children, PipingDataResources.PipingCalculation_DefaultName, c => c.Name)
+ };
+
+ nodeData.WrappedData.Children.Add(calculation);
+ nodeData.WrappedData.NotifyObservers();
+ }
+
private StrictContextMenuItem CreateGeneratePipingCalculationsItem(PipingCalculationGroupContext nodeData)
{
var surfaceLineAvailable = nodeData.AvailablePipingSurfaceLines.Any() && nodeData.AvailableStochasticSoilModels.Any();