Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs
===================================================================
diff -u -r4435a35be229b12da5859395985ad38c9c5d4729 -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 4435a35be229b12da5859395985ad38c9c5d4729)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -165,29 +165,18 @@
}
///
- /// Adds an item to the , which enables a disabled failure mechanism.
- ///
- /// The failure mechanism context belonging to the failure mechanism.
- /// The itself.
- public RingtoetsContextMenuBuilder AddDisabledChangeRelevancyItem(IFailureMechanismContext failureMechanismContext)
- {
- contextMenuBuilder.AddCustomItem(RingtoetsContextMenuItemFactory.CreateDisabledChangeRelevancyItem(failureMechanismContext));
- return this;
- }
-
- ///
/// Adds an item to the , which sets if the failure mechanism is relevant.
///
/// The type of the failure mechanism context.
/// The failure mechanism context belonging to the failure mechanism.
- /// The action that removes all views.
+ /// The action to perform when relevance changes.
/// The itself.
- public RingtoetsContextMenuBuilder AddChangeRelevancyOfFailureMechanismItem(
+ public RingtoetsContextMenuBuilder AddToggleRelevancyOfFailureMechanismItem(
TFailureMechanismContext failureMechanismContext,
- Action removeAllViewsForItemAction)
+ Action onChangeAction)
where TFailureMechanismContext : IFailureMechanismContext
{
- contextMenuBuilder.AddCustomItem(RingtoetsContextMenuItemFactory.CreateChangeRelevancyOfFailureMechanismItem(failureMechanismContext, removeAllViewsForItemAction));
+ contextMenuBuilder.AddCustomItem(RingtoetsContextMenuItemFactory.CreateToggleRelevancyOfFailureMechanismItem(failureMechanismContext, onChangeAction));
return this;
}
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs
===================================================================
diff -u -r4435a35be229b12da5859395985ad38c9c5d4729 -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 4435a35be229b12da5859395985ad38c9c5d4729)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -183,24 +183,6 @@
}
///
- /// Creates a which is bound to the action of changing the relevancy state of a disabled failure mechanism.
- ///
- /// The failure mechanism context belonging to the failure mechanism.
- /// The created .
- public static StrictContextMenuItem CreateDisabledChangeRelevancyItem(IFailureMechanismContext failureMechanismContext)
- {
- return new StrictContextMenuItem(
- Resources.FailureMechanismContextMenuStrip_Is_relevant,
- Resources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip,
- Resources.Checkbox_empty,
- (o, args) =>
- {
- failureMechanismContext.WrappedData.IsRelevant = true;
- failureMechanismContext.WrappedData.NotifyObservers();
- });
- }
-
- ///
/// Creates a which is bound to the action of clearing the output of all calculations in a failure mechanism.
///
/// The failure mechanism to clear the output for.
@@ -263,21 +245,27 @@
///
/// The type of the failure mechanism context.
/// The failure mechanism context belonging to the failure mechanism.
- /// The action that removes all views.
+ /// The action to perform when relevance changes.
/// The created .
- public static StrictContextMenuItem CreateChangeRelevancyOfFailureMechanismItem(
+ public static StrictContextMenuItem CreateToggleRelevancyOfFailureMechanismItem(
TFailureMechanismContext failureMechanismContext,
- Action removeAllViewsForItemAction)
+ Action onChangeAction)
where TFailureMechanismContext : IFailureMechanismContext
{
+ var isRelevant = failureMechanismContext.WrappedData.IsRelevant;
+ var checkboxImage = isRelevant ? Resources.Checkbox_ticked : Resources.Checkbox_empty;
return new StrictContextMenuItem(
Resources.FailureMechanismContextMenuStrip_Is_relevant,
Resources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip,
- Resources.Checkbox_ticked,
+ checkboxImage,
(sender, args) =>
{
- removeAllViewsForItemAction(failureMechanismContext);
- failureMechanismContext.WrappedData.IsRelevant = false;
+ if (onChangeAction != null)
+ {
+ onChangeAction(failureMechanismContext);
+ }
+
+ failureMechanismContext.WrappedData.IsRelevant = !isRelevant;
failureMechanismContext.WrappedData.NotifyObservers();
});
}
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs
===================================================================
diff -u -rbd29bacc20bc58cc67f27dd33fa4fa6b41db873c -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision bd29bacc20bc58cc67f27dd33fa4fa6b41db873c)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -386,7 +386,9 @@
}
[Test]
- public void AddChangeRelevancyOfFailureMechanismItem_WhenBuild_ItemAddedToContextMenuEnabled()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void AddToggleRelevancyOfFailureMechanismItem_WhenBuild_ItemAddedToContextMenuEnabled(bool isRelevant)
{
// Setup
var mocks = new MockRepository();
@@ -395,22 +397,25 @@
var viewCommandsMock = mocks.StrictMock();
var treeViewControlMock = mocks.StrictMock();
var failureMechanismMock = mocks.StrictMock();
+ failureMechanismMock.Expect(fm => fm.IsRelevant).Return(isRelevant);
var failureMechanismContextMock = mocks.StrictMock>();
+ failureMechanismContextMock.Expect(fmc => fmc.WrappedData).Return(failureMechanismMock);
mocks.ReplayAll();
var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, failureMechanismMock, treeViewControlMock);
var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder);
// Call
- var result = ringtoetsContextMenuBuilder.AddChangeRelevancyOfFailureMechanismItem(failureMechanismContextMock, null).Build();
+ var result = ringtoetsContextMenuBuilder.AddToggleRelevancyOfFailureMechanismItem(failureMechanismContextMock, null).Build();
// Assert
Assert.IsInstanceOf(result);
Assert.AreEqual(1, result.Items.Count);
+ var checkboxIcon = isRelevant ? RingtoetsFormsResources.Checkbox_empty : RingtoetsFormsResources.Checkbox_ticked;
TestHelper.AssertContextMenuStripContainsItem(result, 0,
RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant,
RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip,
- RingtoetsFormsResources.Checkbox_ticked);
+ checkboxIcon);
mocks.VerifyAll();
}
@@ -550,37 +555,6 @@
}
[Test]
- public void AddDisabledChangeRelevancyItem_WhenBuild_ItemAddedToContextMenu()
- {
- // Setup
- var mocks = new MockRepository();
- var applicationFeatureCommandsMock = mocks.StrictMock();
- var exportImportHandlerMock = mocks.StrictMock();
- var viewCommandsMock = mocks.StrictMock();
- var treeViewControlMock = mocks.StrictMock();
- var failureMechanismContextMock = mocks.StrictMock>();
-
- mocks.ReplayAll();
-
- var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, failureMechanismContextMock, treeViewControlMock);
- var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder);
-
- // Call
- var result = ringtoetsContextMenuBuilder.AddDisabledChangeRelevancyItem(failureMechanismContextMock).Build();
-
- // Assert
- Assert.IsInstanceOf(result);
- Assert.AreEqual(1, result.Items.Count);
-
- TestHelper.AssertContextMenuStripContainsItem(result, 0,
- RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant,
- RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip,
- RingtoetsFormsResources.Checkbox_empty);
-
- mocks.VerifyAll();
- }
-
- [Test]
public void AddPerformAllCalculationsInFailureMechanismItem_WhenBuildWithAllValidData_ItemAddedToContextmenuEnabled()
{
// Setup
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs
===================================================================
diff -u -r4435a35be229b12da5859395985ad38c9c5d4729 -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision 4435a35be229b12da5859395985ad38c9c5d4729)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -655,48 +655,56 @@
}
[Test]
- public void CreateChangeRelevancyOfFailureMechanismItem_Always_CreateDecoratedItem()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void CreateToggleRelevancyOfFailureMechanismItem_IsRelevant_CreateDecoratedItem(bool isRelevant)
{
// Setup
var mocks = new MockRepository();
- var failureMechanismMock = mocks.StrictMock();
var assessmentSectionMock = mocks.StrictMock();
mocks.ReplayAll();
+ var failureMechanism = new TestFailureMechanism(Enumerable.Empty())
+ {
+ IsRelevant = isRelevant
+ };
+ var failureMechanismContext = new TestFailureMechanismContext(failureMechanism, assessmentSectionMock);
- var failureMechanismContext = new TestFailureMechanismContext(failureMechanismMock, assessmentSectionMock);
-
// Call
- var toolStripItem = RingtoetsContextMenuItemFactory.CreateChangeRelevancyOfFailureMechanismItem(failureMechanismContext, null);
+ var toolStripItem = RingtoetsContextMenuItemFactory.CreateToggleRelevancyOfFailureMechanismItem(failureMechanismContext, null);
// Assert
Assert.AreEqual(RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant, toolStripItem.Text);
Assert.AreEqual(RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip, toolStripItem.ToolTipText);
- TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.Checkbox_ticked, toolStripItem.Image);
+ var checkboxIcon = isRelevant ? RingtoetsFormsResources.Checkbox_empty : RingtoetsFormsResources.Checkbox_ticked;
+ TestHelper.AssertImagesAreEqual(checkboxIcon, toolStripItem.Image);
Assert.IsTrue(toolStripItem.Enabled);
mocks.VerifyAll();
}
[Test]
- public void CreateChangeRelevancyOfFailureMechanismItem_PerformClickOnRelevanceItem_RelevanceFalseAndObserversNotified()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void CreateToggleRelevancyOfFailureMechanismItem_PerformClickOnRelevanceItem_RelevanceChangedAndObserversNotified(bool isRelevant)
{
// Setup
var mocks = new MockRepository();
var failureMechanismMock = mocks.StrictMock();
failureMechanismMock.Expect(fm => fm.NotifyObservers());
- failureMechanismMock.Expect(fm => fm.IsRelevant).SetPropertyWithArgument(false);
+ failureMechanismMock.Expect(fm => fm.IsRelevant).Return(isRelevant);
+ failureMechanismMock.Expect(fm => fm.IsRelevant).SetPropertyWithArgument(!isRelevant);
var assessmentSectionMock = mocks.StrictMock();
mocks.ReplayAll();
var failureMechanismContext = new TestFailureMechanismContext(failureMechanismMock, assessmentSectionMock);
- var counter = 0;
- var toolStripItem = RingtoetsContextMenuItemFactory.CreateChangeRelevancyOfFailureMechanismItem(failureMechanismContext, context => counter++);
+ var actionCounter = 0;
+ var toolStripItem = RingtoetsContextMenuItemFactory.CreateToggleRelevancyOfFailureMechanismItem(failureMechanismContext, context => actionCounter++);
// Call
toolStripItem.PerformClick();
// Assert
- Assert.AreEqual(1, counter);
+ Assert.AreEqual(1, actionCounter);
mocks.VerifyAll();
}
@@ -857,50 +865,6 @@
}
[Test]
- public void CreateDisabledChangeRelevancyItem_Always_CreatesDecoratedItem()
- {
- // Setup
- var mocks = new MockRepository();
- var failureMechanismContextMock = mocks.StrictMock>();
-
- mocks.ReplayAll();
-
- // Call
- var toolStripItem = RingtoetsContextMenuItemFactory.CreateDisabledChangeRelevancyItem(failureMechanismContextMock);
-
- // Assert
- Assert.AreEqual(RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant, toolStripItem.Text);
- Assert.AreEqual(RingtoetsFormsResources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip, toolStripItem.ToolTipText);
- TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.Checkbox_empty, toolStripItem.Image);
- Assert.IsTrue(toolStripItem.Enabled);
-
- mocks.VerifyAll();
- }
-
- [Test]
- public void CreateDisabledChangeRelevancyItem_PerformClickOnCreatedItem_FailureMechanismIsRelevantSetToTrueAndObserversNotified()
- {
- // Setup
- var mocks = new MockRepository();
- var failureMechanismMock = mocks.StrictMock();
- var failureMechanismContextMock = mocks.StrictMock>();
-
- failureMechanismContextMock.Stub(c => c.WrappedData).Return(failureMechanismMock);
- failureMechanismMock.Expect(c => c.IsRelevant).SetPropertyWithArgument(true);
- failureMechanismMock.Expect(c => c.NotifyObservers());
-
- mocks.ReplayAll();
-
- var toolStripItem = RingtoetsContextMenuItemFactory.CreateDisabledChangeRelevancyItem(failureMechanismContextMock);
-
- // Call
- toolStripItem.PerformClick();
-
- // Assert
- mocks.VerifyAll();
- }
-
- [Test]
public void CreatePerformAllCalculationsInFailureMechanismItem_IsEnabledFuncTrue_CreatesDecoratedAndEnabledItem()
{
// Setup
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs
===================================================================
diff -u -r4435a35be229b12da5859395985ad38c9c5d4729 -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 4435a35be229b12da5859395985ad38c9c5d4729)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -248,7 +248,7 @@
return builder.AddOpenItem()
.AddSeparator()
- .AddChangeRelevancyOfFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, RemoveAllViewsForItem)
+ .AddToggleRelevancyOfFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, RemoveAllViewsForItem)
.AddSeparator()
.AddPerformAllCalculationsInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, CalculateAll, EnablePerformAllCalculationsInFailureMechanism)
.AddClearAllCalculationOutputInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext.WrappedData)
@@ -277,7 +277,7 @@
{
var builder = new RingtoetsContextMenuBuilder(Gui.Get(grassCoverErosionInwardsFailureMechanismContext, treeViewControl));
- return builder.AddDisabledChangeRelevancyItem(grassCoverErosionInwardsFailureMechanismContext)
+ return builder.AddToggleRelevancyOfFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, null)
.AddSeparator()
.AddExpandAllItem()
.AddCollapseAllItem()
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs
===================================================================
diff -u -r4fcfb461202e3486c94b31783da77d5792ab7e92 -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 4fcfb461202e3486c94b31783da77d5792ab7e92)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -311,7 +311,7 @@
return assessmentSection
.GetFailureMechanisms()
.OfType>()
- .Any(fm => ReferenceEquals(view.Data,fm.SectionResults));
+ .Any(fm => ReferenceEquals(view.Data, fm.SectionResults));
}
if (failureMechanismContext != null)
{
@@ -507,7 +507,7 @@
{
var builder = new RingtoetsContextMenuBuilder(Gui.Get(nodeData, treeViewControl));
- return builder.AddChangeRelevancyOfFailureMechanismItem(nodeData, RemoveAllViewsForItem)
+ return builder.AddToggleRelevancyOfFailureMechanismItem(nodeData, RemoveAllViewsForItem)
.AddSeparator()
.AddImportItem()
.AddExportItem()
@@ -528,7 +528,7 @@
{
var builder = new RingtoetsContextMenuBuilder(Gui.Get(nodeData, treeViewControl));
- return builder.AddDisabledChangeRelevancyItem(nodeData)
+ return builder.AddToggleRelevancyOfFailureMechanismItem(nodeData, null)
.AddSeparator()
.AddExpandAllItem()
.AddCollapseAllItem()
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -r4435a35be229b12da5859395985ad38c9c5d4729 -r09e76611c2a789b6f015368968a18ea5b9b138cc
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 4435a35be229b12da5859395985ad38c9c5d4729)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 09e76611c2a789b6f015368968a18ea5b9b138cc)
@@ -283,7 +283,7 @@
{
failureMechanism = failureMechanismContext.WrappedData;
}
- return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase)failureMechanism).SectionResults);
+ return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase) failureMechanism).SectionResults);
}
# endregion
@@ -322,7 +322,7 @@
return builder.AddOpenItem()
.AddSeparator()
- .AddChangeRelevancyOfFailureMechanismItem(pipingFailureMechanismContext, RemoveAllViewsForItem)
+ .AddToggleRelevancyOfFailureMechanismItem(pipingFailureMechanismContext, RemoveAllViewsForItem)
.AddSeparator()
.AddCustomItem(validateAllItem)
.AddPerformAllCalculationsInFailureMechanismItem(pipingFailureMechanismContext, CalculateAll, context => true)
@@ -347,7 +347,7 @@
{
var builder = new RingtoetsContextMenuBuilder(Gui.Get(pipingFailureMechanismContext, treeViewControl));
- return builder.AddDisabledChangeRelevancyItem(pipingFailureMechanismContext)
+ return builder.AddToggleRelevancyOfFailureMechanismItem(pipingFailureMechanismContext, null)
.AddSeparator()
.AddExpandAllItem()
.AddCollapseAllItem()