Index: Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs
===================================================================
diff -u -re6e92cb42b1e4983add2406300958b6b116ba781 -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (.../ContextMenuBuilder.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781)
+++ Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (.../ContextMenuBuilder.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -14,7 +14,6 @@
private readonly GuiContextMenuItemFactory guiItemsFactory;
private readonly TreeViewContextMenuItemFactory treeViewItemsFactory;
private readonly ContextMenuStrip contextMenu;
- private readonly ITreeNode treeNode;
///
/// Creates a new instance of , which uses the given to
@@ -33,7 +32,6 @@
}
treeViewItemsFactory = new TreeViewContextMenuItemFactory(treeNode);
contextMenu = new ContextMenuStrip();
- this.treeNode = treeNode;
}
///
@@ -130,9 +128,9 @@
///
/// Adds a custom item to the .
///
- /// The custom to add to the .
+ /// The custom to add to the .
/// The itself, so that operations can be easily chained.
- public ContextMenuBuilder AddCustomItem(ToolStripMenuItem item)
+ public ContextMenuBuilder AddCustomItem(StrictContextMenuItem item)
{
AddItem(item);
return this;
Index: Core/Common/src/Core.Common.Gui/ContextMenu/StrictContextMenuItem.cs
===================================================================
diff -u
--- Core/Common/src/Core.Common.Gui/ContextMenu/StrictContextMenuItem.cs (revision 0)
+++ Core/Common/src/Core.Common.Gui/ContextMenu/StrictContextMenuItem.cs (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -0,0 +1,34 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace Core.Common.Gui.ContextMenu
+{
+ ///
+ /// Class used by the to enforce instantiation the following properties.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public sealed class StrictContextMenuItem : ToolStripMenuItem
+ {
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The text of the .
+ /// The tooltip of the .
+ /// The icon used for the .
+ /// The handler for a mouse click on the
+ /// .
+ public StrictContextMenuItem(string text, string toolTip, Image image, EventHandler clickHandler)
+ {
+ Text = text;
+ ToolTipText = toolTip;
+ Image = image;
+ Click += clickHandler;
+ }
+ }
+}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj
===================================================================
diff -u -re6e92cb42b1e4983add2406300958b6b116ba781 -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision e6e92cb42b1e4983add2406300958b6b116ba781)
+++ Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -131,6 +131,9 @@
+
+ Component
+
Index: Core/Common/src/Core.Common.Gui/IGui.cs
===================================================================
diff -u -rbc238ea43fae81b8a49aa2bdb2c8349815c46039 -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Core/Common/src/Core.Common.Gui/IGui.cs (.../IGui.cs) (revision bc238ea43fae81b8a49aa2bdb2c8349815c46039)
+++ Core/Common/src/Core.Common.Gui/IGui.cs (.../IGui.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -105,6 +105,11 @@
///
object Selection { get; set; }
+ ///
+ /// Gets the of the
+ ///
+ IContextMenuBuilderProvider ContextMenuProvider { get; }
+
#endregion
#region Public Methods
Index: Core/Common/src/Core.Common.Gui/RingtoetsGui.cs
===================================================================
diff -u -ra80efa8773c3efec54ba44940945b03bc3f3ff7e -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision a80efa8773c3efec54ba44940945b03bc3f3ff7e)
+++ Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -45,9 +45,9 @@
private static string instanceCreationStackTrace;
private readonly IList commands = new List();
+ private readonly ApplicationCore applicationCore;
private MainWindow mainWindow;
- private readonly ApplicationCore applicationCore;
private object selection;
@@ -279,6 +279,19 @@
public bool IsViewRemoveOnItemDeleteSuspended { get; set; }
+ public IContextMenuBuilderProvider ContextMenuProvider
+ {
+ get
+ {
+ return this;
+ }
+ }
+
+ public ContextMenuBuilder Get(ITreeNode treeNode)
+ {
+ return new ContextMenuBuilder(this, treeNode);
+ }
+
public void Dispose()
{
Dispose(true);
@@ -381,6 +394,17 @@
return null;
}
+ public void UpdateTitle()
+ {
+ if (mainWindow != null)
+ {
+ mainWindow.Title = string.Format("{0} - {1} {2}",
+ Project != null ? Project.Name : Resources.RingtoetsGui_UpdateTitle_Unknown,
+ FixedSettings.MainWindowTitle,
+ SettingsHelper.ApplicationVersion);
+ }
+ }
+
protected virtual void Dispose(bool disposing)
{
if (disposing)
@@ -849,17 +873,6 @@
log.Info(Resources.RingtoetsGui_InitializeWindows_All_windows_are_created);
}
- public void UpdateTitle()
- {
- if (mainWindow != null)
- {
- mainWindow.Title = string.Format("{0} - {1} {2}",
- Project != null ? Project.Name : Resources.RingtoetsGui_UpdateTitle_Unknown,
- FixedSettings.MainWindowTitle,
- SettingsHelper.ApplicationVersion);
- }
- }
-
private void ActiveViewChanging(object sender, ActiveViewChangeEventArgs e)
{
if (e.View == null || mainWindow == null || mainWindow.IsWindowDisposed)
@@ -1071,10 +1084,5 @@
{
Dispose(false);
}
-
- public ContextMenuBuilder Get(ITreeNode treeNode)
- {
- return new ContextMenuBuilder(this, treeNode);
- }
}
}
\ No newline at end of file
Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs
===================================================================
diff -u -r41c77f9f36ae74a406fd382187426cc06d2b0200 -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision 41c77f9f36ae74a406fd382187426cc06d2b0200)
+++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -280,7 +280,7 @@
{
// Setup
var builder = new ContextMenuBuilder(null, MockRepository.GenerateMock());
- var item = new ToolStripMenuItem();
+ var item = new StrictContextMenuItem(null,null,null,null);
// Call
var result = builder.AddCustomItem(item).Build();
@@ -310,9 +310,9 @@
{
// Setup
var builder = new ContextMenuBuilder(null, MockRepository.GenerateMock());
-
- builder.AddCustomItem(new ToolStripMenuItem());
+ builder.AddCustomItem(new StrictContextMenuItem(null, null, null, null));
+
// Call
var result = builder.AddSeparator().Build();
@@ -329,7 +329,7 @@
// Setup
var builder = new ContextMenuBuilder(null, MockRepository.GenerateMock());
- builder.AddCustomItem(new ToolStripMenuItem()).AddSeparator();
+ builder.AddCustomItem(new StrictContextMenuItem(null, null, null, null)).AddSeparator();
// Call
var result = builder.AddSeparator().Build();
Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/StrictContextMenuItemTest.cs
===================================================================
diff -u
--- Core/Common/test/Core.Common.Gui.Test/ContextMenu/StrictContextMenuItemTest.cs (revision 0)
+++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/StrictContextMenuItemTest.cs (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -0,0 +1,42 @@
+using System;
+using System.Drawing;
+using System.IO;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.Gui.Properties;
+using Core.Common.TestUtils;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Common.Gui.Tests.ContextMenu
+{
+ [TestFixture]
+ public class StrictContextMenuItemTest
+ {
+ public interface IClick
+ {
+ void Click();
+ }
+
+ [Test]
+ public void Constructor_WithParameters_PropertiesSet()
+ {
+ // Setup
+ var text = "text";
+ var toolTip = "tooltip";
+ var image = Resources.ImportIcon;
+ var mock = MockRepository.GenerateStrictMock();
+ mock.Expect(m => m.Click());
+ EventHandler handler = (s,e) => mock.Click();
+
+ // Call
+ var result = new StrictContextMenuItem(text,toolTip,image,handler);
+ result.PerformClick();
+
+ // Assert
+ Assert.IsInstanceOf(result);
+ Assert.AreEqual(text, result.Text);
+ Assert.AreEqual(toolTip, result.ToolTipText);
+ TestHelper.AssertImagesAreEqual(image, result.Image);
+ }
+ }
+}
\ No newline at end of file
Index: Core/Common/test/Core.Common.Gui.Test/Core.Common.Gui.Test.csproj
===================================================================
diff -u -r41c77f9f36ae74a406fd382187426cc06d2b0200 -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Core/Common/test/Core.Common.Gui.Test/Core.Common.Gui.Test.csproj (.../Core.Common.Gui.Test.csproj) (revision 41c77f9f36ae74a406fd382187426cc06d2b0200)
+++ Core/Common/test/Core.Common.Gui.Test/Core.Common.Gui.Test.csproj (.../Core.Common.Gui.Test.csproj) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -55,6 +55,7 @@
+
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismNodePresenter.cs
===================================================================
diff -u -ra80efa8773c3efec54ba44940945b03bc3f3ff7e -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismNodePresenter.cs (.../FailureMechanismNodePresenter.cs) (revision a80efa8773c3efec54ba44940945b03bc3f3ff7e)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismNodePresenter.cs (.../FailureMechanismNodePresenter.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -38,19 +38,21 @@
protected override ContextMenuStrip GetContextMenu(ITreeNode sender, FailureMechanismPlaceholder nodeData)
{
ContextMenuBuilder menuBuilder = contextMenuBuilderProvider.Get(sender);
-
- var calculateItem = new ToolStripMenuItem
+
+ var calculateItem = new StrictContextMenuItem(
+ RingtoetsCommonFormsResources.Calculate_all,
+ RingtoetsCommonFormsResources.Calculate_all_ToolTip,
+ RingtoetsCommonFormsResources.CalculateAllIcon,
+ null)
{
- Text = RingtoetsCommonFormsResources.Calculate_all,
- ToolTipText = RingtoetsCommonFormsResources.Calculate_all_ToolTip,
- Image = RingtoetsCommonFormsResources.CalculateAllIcon,
Enabled = false
};
- var clearOutputItem = new ToolStripMenuItem
+ var clearOutputItem = new StrictContextMenuItem(
+ RingtoetsCommonFormsResources.Clear_all_output,
+ RingtoetsCommonFormsResources.Clear_all_output_ToolTip,
+ RingtoetsCommonFormsResources.ClearIcon, null
+ )
{
- Text = RingtoetsCommonFormsResources.Clear_all_output,
- ToolTipText = RingtoetsCommonFormsResources.Clear_all_output_ToolTip,
- Image = RingtoetsCommonFormsResources.ClearIcon,
Enabled = false
};
var contextMenu = menuBuilder.AddCustomItem(calculateItem)
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs
===================================================================
diff -u -re6e92cb42b1e4983add2406300958b6b116ba781 -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs (.../PlaceholderWithReadonlyNameNodePresenter.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs (.../PlaceholderWithReadonlyNameNodePresenter.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -45,11 +45,12 @@
if (nodeData is InputPlaceholder || nodeData is OutputPlaceholder)
{
- var clearItem = new ToolStripMenuItem
+ var clearItem = new StrictContextMenuItem(
+ RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase,
+ RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip,
+ RingtoetsCommonFormsResources.ClearIcon,
+ null)
{
- Text = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase,
- ToolTipText = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip,
- Image = RingtoetsCommonFormsResources.ClearIcon,
Enabled = false
};
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs
===================================================================
diff -u -r61161720b379645f400606e868e2a1286c17348d -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs (.../PipingFailureMechanismNodePresenter.cs) (revision 61161720b379645f400606e868e2a1286c17348d)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs (.../PipingFailureMechanismNodePresenter.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -7,8 +7,8 @@
using Core.Common.Base.Workflow;
using Core.Common.Controls;
-
-using Ringtoets.Common.Forms.Extensions;
+using Core.Common.Gui;
+using Core.Common.Gui.ContextMenu;
using Ringtoets.Common.Forms.NodePresenters;
using Ringtoets.Common.Forms.PresentationObjects;
using Ringtoets.Piping.Data;
@@ -28,6 +28,8 @@
///
public class PipingFailureMechanismNodePresenter : RingtoetsNodePresenterBase
{
+ public IContextMenuBuilderProvider ContextMenuBuilderProvider { get; set; }
+
///
/// Injection points for a method to cause an to be scheduled for execution.
///
@@ -49,60 +51,97 @@
protected override ContextMenuStrip GetContextMenu(ITreeNode sender, PipingFailureMechanism failureMechanism)
{
- var rootMenu = new ContextMenuStrip();
+ if (ContextMenuBuilderProvider == null)
+ {
+ return null;
+ }
- rootMenu.AddMenuItem(Resources.PipingFailureMechanism_Add_PipingCalculation,
- Resources.PipingFailureMechanism_Add_PipingCalculation_Tooltip,
- Resources.PipingIcon, (o, args) =>
- {
- var calculation = new PipingCalculation
- {
- Name = NamingHelper.GetUniqueName(failureMechanism.Calculations, PipingDataResources.PipingCalculation_DefaultName, c => c.Name)
- };
- failureMechanism.Calculations.Add(calculation);
- failureMechanism.NotifyObservers();
- });
- rootMenu.AddMenuItem(Resources.PipingFailureMechanism_Add_PipingCalculationGroup,
- Resources.PipingFailureMechanism_Add_PipingCalculationGroup_Tooltip,
- Resources.AddFolderIcon, (o, args) =>
- {
- var calculation = new PipingCalculationGroup
- {
- Name = NamingHelper.GetUniqueName(failureMechanism.Calculations, PipingDataResources.PipingCalculationGroup_DefaultName, c => c.Name)
- };
- failureMechanism.Calculations.Add(calculation);
- failureMechanism.NotifyObservers();
- });
- rootMenu.AddMenuItem(RingtoetsCommonFormsResources.Calculate_all,
- Resources.PipingFailureMechanism_Calculate_Tooltip,
- RingtoetsCommonFormsResources.CalculateAllIcon, (o, args) =>
- {
- foreach (PipingCalculation calc in GetAllPipingCalculationsResursively(failureMechanism))
- {
- RunActivityAction(new PipingCalculationActivity(calc));
- }
- });
+ var addCalculationItem = new StrictContextMenuItem(
+ Resources.PipingFailureMechanism_Add_PipingCalculation,
+ Resources.PipingFailureMechanism_Add_PipingCalculation_Tooltip,
+ Resources.PipingIcon,
+ (s, e) => AddCalculation(failureMechanism)
+ );
- var clearOutputNode = rootMenu.AddMenuItem(RingtoetsCommonFormsResources.Clear_all_output,
- RingtoetsCommonFormsResources.Clear_all_output_ToolTip,
- RingtoetsCommonFormsResources.ClearIcon, (o, args) =>
- {
- foreach (PipingCalculation calc in GetAllPipingCalculationsResursively(failureMechanism))
- {
- calc.ClearOutput();
- calc.NotifyObservers();
- }
- });
+ var addCalculationGroupItem = new StrictContextMenuItem(
+ Resources.PipingFailureMechanism_Add_PipingCalculationGroup,
+ Resources.PipingFailureMechanism_Add_PipingCalculationGroup_Tooltip,
+ Resources.AddFolderIcon,
+ (o, args) => AddCalculationGroup(failureMechanism)
+ );
+ var calculateAllItem = new StrictContextMenuItem(
+ RingtoetsCommonFormsResources.Calculate_all,
+ Resources.PipingFailureMechanism_Calculate_Tooltip,
+ RingtoetsCommonFormsResources.CalculateAllIcon,
+ (o, args) => CalculateAll(failureMechanism)
+ );
+
+ var clearAllItem = new StrictContextMenuItem(
+ RingtoetsCommonFormsResources.Clear_all_output,
+ RingtoetsCommonFormsResources.Clear_all_output_ToolTip,
+ RingtoetsCommonFormsResources.ClearIcon,
+ (o, args) => ClearAll(failureMechanism)
+ );
+
if (!GetAllPipingCalculationsResursively(failureMechanism).Any(c => c.HasOutput))
{
- clearOutputNode.Enabled = false;
- clearOutputNode.ToolTipText = Resources.ClearOutput_No_calculation_with_output_to_clear;
+ clearAllItem.Enabled = false;
+ clearAllItem.ToolTipText = Resources.ClearOutput_No_calculation_with_output_to_clear;
}
- return rootMenu;
+ return ContextMenuBuilderProvider.Get(sender)
+ .AddCustomItem(addCalculationItem)
+ .AddCustomItem(addCalculationGroupItem)
+ .AddSeparator()
+ .AddCustomItem(calculateAllItem)
+ .AddCustomItem(clearAllItem)
+ .AddSeparator()
+ .AddExpandAllItem()
+ .AddCollapseAllItem()
+ .AddSeparator()
+ .AddImportItem()
+ .AddExportItem()
+ .Build();
}
+ private static void ClearAll(PipingFailureMechanism failureMechanism)
+ {
+ foreach (PipingCalculation calc in GetAllPipingCalculationsResursively(failureMechanism))
+ {
+ calc.ClearOutput();
+ calc.NotifyObservers();
+ }
+ }
+
+ private void CalculateAll(PipingFailureMechanism failureMechanism)
+ {
+ foreach (PipingCalculation calc in GetAllPipingCalculationsResursively(failureMechanism))
+ {
+ RunActivityAction(new PipingCalculationActivity(calc));
+ }
+ }
+
+ private static void AddCalculationGroup(PipingFailureMechanism failureMechanism)
+ {
+ var calculation = new PipingCalculationGroup
+ {
+ Name = NamingHelper.GetUniqueName(failureMechanism.Calculations, PipingDataResources.PipingCalculationGroup_DefaultName, c => c.Name)
+ };
+ failureMechanism.Calculations.Add(calculation);
+ failureMechanism.NotifyObservers();
+ }
+
+ private static void AddCalculation(PipingFailureMechanism failureMechanism)
+ {
+ var calculation = new PipingCalculation
+ {
+ Name = NamingHelper.GetUniqueName(failureMechanism.Calculations, PipingDataResources.PipingCalculation_DefaultName, c => c.Name)
+ };
+ failureMechanism.Calculations.Add(calculation);
+ failureMechanism.NotifyObservers();
+ }
+
private static IEnumerable GetInputs(PipingFailureMechanism failureMechanism)
{
yield return failureMechanism.SectionDivisions;
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -r495647ee1c652fecc15eea7fefeab29ae01347fe -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 495647ee1c652fecc15eea7fefeab29ae01347fe)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -39,9 +39,10 @@
};
yield return new PipingCalculationGroupContextNodePresenter();
yield return new PipingInputContextNodePresenter();
- yield return new PipingFailureMechanismNodePresenter
+ yield return new PipingFailureMechanismNodePresenter()
{
- RunActivityAction = Gui.ActivityRunner.Enqueue
+ RunActivityAction = Gui.ActivityRunner.Enqueue,
+ ContextMenuBuilderProvider = Gui.ContextMenuProvider
};
yield return new PipingSurfaceLineCollectionNodePresenter
{
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs
===================================================================
diff -u -r61161720b379645f400606e868e2a1286c17348d -reb7f8fe1e85f00faf16a1cddef014728d60a2b19
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs (.../PipingFailureMechanismNodePresenterTest.cs) (revision 61161720b379645f400606e868e2a1286c17348d)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs (.../PipingFailureMechanismNodePresenterTest.cs) (revision eb7f8fe1e85f00faf16a1cddef014728d60a2b19)
@@ -2,8 +2,11 @@
using System.ComponentModel;
using System.Drawing;
using System.Linq;
+using System.Windows.Forms;
using Core.Common.Base;
using Core.Common.Controls;
+using Core.Common.Gui;
+using Core.Common.Gui.ContextMenu;
using Core.Common.TestUtils;
using Core.Common.Utils.Collections;
using NUnit.Framework;
@@ -18,6 +21,7 @@
using RingtoetsFormsResources = Ringtoets.Common.Forms.Properties.Resources;
using PipingFormsResources = Ringtoets.Piping.Forms.Properties.Resources;
+using CommonGuiResources = Core.Common.Gui.Properties.Resources;
namespace Ringtoets.Piping.Forms.Test.NodePresenters
{
@@ -26,8 +30,7 @@
private const int contextMenuAddCalculationIndex = 0;
private const int contextMenuAddFolderIndex = 1;
- private const int contextMenuCalculateIndex = 2;
- private const int contextMenuClearIndex = 3;
+ private const int contextMenuClearIndex = 4;
[Test]
public void DefaultConstructor_ExpectedValues()
@@ -284,263 +287,347 @@
}
[Test]
- public void GetContextMenu_PipingFailureMechanism_ReturnsContextMenuWithFourItems()
+ public void OnPropertyChange_Always_DoNothing()
{
// Setup
var mocks = new MockRepository();
+ var dataMock = mocks.StrictMock();
var nodeMock = mocks.StrictMock();
+ var eventArgsMock = mocks.StrictMock("");
mocks.ReplayAll();
- var nodeData = new PipingFailureMechanism();
- ((PipingCalculation)nodeData.Calculations.First()).Output = new TestPipingOutput();
-
var nodePresenter = new PipingFailureMechanismNodePresenter();
// Call
- var contextMenu = nodePresenter.GetContextMenu(nodeMock, nodeData);
+ nodePresenter.OnPropertyChanged(dataMock, nodeMock, eventArgsMock);
// Assert
- Assert.AreEqual(4, contextMenu.Items.Count);
- var addCalculationItem = contextMenu.Items[contextMenuAddCalculationIndex];
- Assert.AreEqual("Berekening toevoegen", addCalculationItem.Text);
- Assert.AreEqual("Voeg een nieuwe piping berekening toe aan het faalmechanisme.", addCalculationItem.ToolTipText);
- Assert.AreEqual(16, addCalculationItem.Image.Width);
- Assert.AreEqual(16, addCalculationItem.Image.Height);
+ mocks.VerifyAll(); // Expect no calls on arguments
+ }
- var addFolderItem = contextMenu.Items[contextMenuAddFolderIndex];
- Assert.AreEqual("Map toevoegen", addFolderItem.Text);
- Assert.AreEqual("Voeg een nieuwe berekeningsmap toe aan het faalmechanisme.", addFolderItem.ToolTipText);
- TestHelper.AssertImagesAreEqual(PipingFormsResources.AddFolderIcon, addFolderItem.Image);
+ [Test]
+ public void OnCollectionChange_Always_DoNothing()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var dataMock = mocks.StrictMock();
+ var eventArgsMock = mocks.StrictMock();
+ mocks.ReplayAll();
- var runAllItem = contextMenu.Items[contextMenuCalculateIndex];
- Assert.AreEqual("Alles be&rekenen", runAllItem.Text);
- Assert.AreEqual("Valideer en voer alle berekeningen binnen het piping faalmechanisme uit.", runAllItem.ToolTipText);
- TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.CalculateAllIcon, runAllItem.Image);
+ var nodePresenter = new PipingFailureMechanismNodePresenter();
- var clearOutputItem = contextMenu.Items[contextMenuClearIndex];
- Assert.AreEqual("&Wis alle uitvoer", clearOutputItem.Text);
- Assert.AreEqual("Wis de uitvoer van alle berekeningen binnen het faalmechanisme.", clearOutputItem.ToolTipText);
- TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.ClearIcon, clearOutputItem.Image);
+ // Call
+ nodePresenter.OnCollectionChanged(dataMock, eventArgsMock);
+ // Assert
mocks.VerifyAll(); // Expect no calls on arguments
}
[Test]
- public void GetContextMenu_PipingFailureMechanismNoOutput_ClearAllOutputDisabled()
+ public void CanRemove_Always_ReturnFalse()
{
// Setup
var mocks = new MockRepository();
- var nodeMock = mocks.StrictMock();
- var dataMock = mocks.StrictMock();
+ var parentNodeDataMock = mocks.StrictMock