Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/FailureMechanismContributionContext.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r66ee69642e1342ee03613d7d73831346f00d269c
--- Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/FailureMechanismContributionContext.cs (.../FailureMechanismContributionContext.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/FailureMechanismContributionContext.cs (.../FailureMechanismContributionContext.cs) (revision 66ee69642e1342ee03613d7d73831346f00d269c)
@@ -22,8 +22,6 @@
using System;
using Core.Common.Base;
-
-using Ringtoets.Common.Data;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Contribution;
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs
===================================================================
diff -u -r1edcce70c4214ce894351c4e19f69c0c954d6360 -r66ee69642e1342ee03613d7d73831346f00d269c
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 1edcce70c4214ce894351c4e19f69c0c954d6360)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 66ee69642e1342ee03613d7d73831346f00d269c)
@@ -46,9 +46,10 @@
public partial class FailureMechanismContributionView : UserControl, IView, IObserver
{
private DataGridViewColumn probabilityPerYearColumn;
- private FailureMechanismContributionContext data;
+ private FailureMechanismContribution data;
private bool revertingComboBoxSelectedValue;
+ private IAssessmentSection assessmentSection;
///
/// Creates a new instance of .
@@ -71,10 +72,25 @@
}
set
{
- HandleNewDataSet((FailureMechanismContributionContext)value);
+ HandleNewDataSet((FailureMechanismContribution)value);
}
}
+ ///
+ /// Gets and sets the assessment section this view belongs to.
+ ///
+ public IAssessmentSection AssessmentSection
+ {
+ get
+ {
+ return assessmentSection;
+ }
+ set
+ {
+ HandleNewAssessmentSectionSet(value);
+ }
+ }
+
public void UpdateObserver()
{
SetNormText();
@@ -121,7 +137,7 @@
{
if (e.ColumnIndex == probabilityPerYearColumn.Index)
{
- var contributionItem = data.WrappedData.Distribution.ElementAt(e.RowIndex);
+ var contributionItem = data.Distribution.ElementAt(e.RowIndex);
if (contributionItem.Contribution == 0.0)
{
e.Value = RingtoetsIntegrationFormsResources.FailureMechanismContributionView_ProbabilityPerYear_Not_applicable;
@@ -130,28 +146,35 @@
}
}
- private void HandleNewDataSet(FailureMechanismContributionContext value)
+ private void HandleNewDataSet(FailureMechanismContribution value)
{
- UnbindAssessmentSectionCompositionChange();
UnbindNormChange();
DetachFromData();
data = value;
SetGridDataSource();
SetNormText();
- SetAssessmentSectionComposition();
AttachToData();
BindNormChange();
+ }
+
+ private void HandleNewAssessmentSectionSet(IAssessmentSection value)
+ {
+ UnbindAssessmentSectionCompositionChange();
+
+ assessmentSection = value;
+
+ SetAssessmentSectionComposition();
BindAssessmentSectionCompositionChange();
}
private void SetGridDataSource()
{
if (data != null)
{
- probabilityDistributionGrid.DataSource = data.WrappedData.Distribution;
+ probabilityDistributionGrid.DataSource = data.Distribution;
probabilityDistributionGrid.Invalidate();
}
}
@@ -204,10 +227,8 @@
private void NormValueChanged(object sender, EventArgs eventArgs)
{
- FailureMechanismContribution contribution = data.WrappedData;
-
- contribution.Norm = Convert.ToInt32(normInput.Value);
- contribution.NotifyObservers();
+ data.Norm = Convert.ToInt32(normInput.Value);
+ data.NotifyObservers();
}
private void ResetTextIfEmtpy()
@@ -222,15 +243,15 @@
{
if (data != null)
{
- normInput.Value = data.WrappedData.Norm;
+ normInput.Value = data.Norm;
}
}
private void SetAssessmentSectionComposition()
{
- if (data != null)
+ if (AssessmentSection != null)
{
- assessmentSectionCompositionComboBox.SelectedValue = data.Parent.Composition;
+ assessmentSectionCompositionComboBox.SelectedValue = AssessmentSection.Composition;
}
}
@@ -279,22 +300,17 @@
return;
}
- IAssessmentSection assessmentSection = data.Parent;
-
var dialogResult = MessageBox.Show(RingtoetsIntegrationFormsResources.FailureMechanismContributionView_ChangeComposition_Change_will_clear_calculation_output_accept_question,
CoreCommonBaseResources.Confirm,
MessageBoxButtons.OKCancel);
if (dialogResult == DialogResult.OK)
{
assessmentSection.ChangeComposition((AssessmentSectionComposition)assessmentSectionCompositionComboBox.SelectedValue);
SetGridDataSource();
- foreach (IFailureMechanism failureMechanism in assessmentSection.GetFailureMechanisms())
+ foreach (ICalculationItem calculation in assessmentSection.GetFailureMechanisms().SelectMany(failureMechanism => failureMechanism.CalculationItems))
{
- foreach (ICalculationItem calculation in failureMechanism.CalculationItems)
- {
- calculation.ClearOutput();
- calculation.NotifyObservers();
- }
+ calculation.ClearOutput();
+ calculation.NotifyObservers();
}
assessmentSection.NotifyObservers();
}
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs
===================================================================
diff -u -r149c1b4d30710a88480556b70ba2b49015b1dded -r66ee69642e1342ee03613d7d73831346f00d269c
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 149c1b4d30710a88480556b70ba2b49015b1dded)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 66ee69642e1342ee03613d7d73831346f00d269c)
@@ -37,6 +37,7 @@
using log4net;
using Ringtoets.Common.Data;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Common.Data.Contribution;
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Forms.PresentationObjects;
using Ringtoets.Common.Forms.Views;
@@ -139,11 +140,13 @@
///
public override IEnumerable GetViewInfos()
{
- yield return new ViewInfo
+ yield return new ViewInfo
{
GetViewName = (v, o) => RingtoetsDataResources.FailureMechanismContribution_DisplayName,
+ GetViewData = context => context.WrappedData,
Image = RingtoetsCommonFormsResources.GenericInputOutputIcon,
- CloseForData = CloseFailureMechanismContributionViewForData
+ CloseForData = CloseFailureMechanismContributionViewForData,
+ AfterCreate = (view, context) => view.AssessmentSection = context.Parent
};
yield return new ViewInfo
@@ -253,7 +256,7 @@
{
Text = failureMechanismContribution => RingtoetsDataResources.FailureMechanismContribution_DisplayName,
Image = failureMechanismContribution => RingtoetsCommonFormsResources.GenericInputOutputIcon,
- ContextMenuStrip = (failureMechanismContribution, parentData, treeViewControl) => Gui.Get(failureMechanismContribution.WrappedData, treeViewControl)
+ ContextMenuStrip = (failureMechanismContribution, parentData, treeViewControl) => Gui.Get(failureMechanismContribution, treeViewControl)
.AddOpenItem()
.AddSeparator()
.AddExportItem()
@@ -295,8 +298,7 @@
private static bool CloseFailureMechanismContributionViewForData(FailureMechanismContributionView view, object o)
{
var assessmentSection = o as IAssessmentSection;
- var viewData = view.Data as FailureMechanismContributionContext;
- return assessmentSection != null && viewData != null && assessmentSection.FailureMechanismContribution == viewData.WrappedData;
+ return assessmentSection != null && assessmentSection.FailureMechanismContribution == view.Data && assessmentSection == view.AssessmentSection;
}
#endregion
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismContributionContextTreeNodeInfoTest.cs
===================================================================
diff -u -rfc38d18fc6ff1749476da0ea43281d5d80568283 -r66ee69642e1342ee03613d7d73831346f00d269c
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismContributionContextTreeNodeInfoTest.cs (.../FailureMechanismContributionContextTreeNodeInfoTest.cs) (revision fc38d18fc6ff1749476da0ea43281d5d80568283)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismContributionContextTreeNodeInfoTest.cs (.../FailureMechanismContributionContextTreeNodeInfoTest.cs) (revision 66ee69642e1342ee03613d7d73831346f00d269c)
@@ -93,7 +93,9 @@
{
// Setup
var contribution = new FailureMechanismContribution(Enumerable.Empty(), 100.0, 150000);
-
+
+ var assessmentSection = mocks.Stub();
+ var context = new FailureMechanismContributionContext(contribution, assessmentSection);
var treeViewControlMock = mocks.StrictMock();
var menuBuilderMock = mocks.StrictMock();
@@ -103,16 +105,12 @@
menuBuilderMock.Expect(mb => mb.Build()).Return(null);
var gui = mocks.StrictMock();
- gui.Expect(cmp => cmp.Get(contribution, treeViewControlMock)).Return(menuBuilderMock);
+ gui.Expect(cmp => cmp.Get(context, treeViewControlMock)).Return(menuBuilderMock);
gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
- var assessmentSection = mocks.Stub();
-
mocks.ReplayAll();
- var context = new FailureMechanismContributionContext(contribution, assessmentSection);
-
using (var plugin = new RingtoetsGuiPlugin())
{
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs
===================================================================
diff -u -r2e37f955003295c3a68b08f043fe736b661a8b84 -r66ee69642e1342ee03613d7d73831346f00d269c
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 2e37f955003295c3a68b08f043fe736b661a8b84)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 66ee69642e1342ee03613d7d73831346f00d269c)
@@ -56,11 +56,10 @@
failureMechanism
}, otherContribution, norm);
- var context = new FailureMechanismContributionContext(contribution, assessmentSection);
-
using (var contributionView = new FailureMechanismContributionView
{
- Data = context
+ Data = contribution,
+ AssessmentSection = assessmentSection
})
{
ShowFormWithView(contributionView);
@@ -95,11 +94,10 @@
}, otherContribution, norm);
distribution.Attach(observerMock);
- var context = new FailureMechanismContributionContext(distribution, assessmentSection);
-
using (var distributionView = new FailureMechanismContributionView
{
- Data = context
+ Data = distribution,
+ AssessmentSection = assessmentSection
})
{
ShowFormWithView(distributionView);
@@ -142,12 +140,10 @@
someMechanism
}, random.Next(0, 100), expectedValue);
- var initialContext = new FailureMechanismContributionContext(initialContribution, assessmentSection1);
- var newContext = new FailureMechanismContributionContext(newContribution, assessmentSection2);
-
using (var distributionView = new FailureMechanismContributionView
{
- Data = initialContext
+ Data = initialContribution,
+ AssessmentSection = assessmentSection1
})
{
ShowFormWithView(distributionView);
@@ -157,7 +153,8 @@
Assert.AreEqual(aValue.ToString(), normTester.Properties.Text);
// Call
- distributionView.Data = newContext;
+ distributionView.Data = newContribution;
+ distributionView.AssessmentSection = assessmentSection2;
// Assert
Assert.AreEqual(expectedValue.ToString(), normTester.Properties.Text);
@@ -177,7 +174,7 @@
var mockRepository = new MockRepository();
var someMechanism = mockRepository.Stub();
- var assessmentSection1 = mockRepository.Stub();
+ var assessmentSection = mockRepository.Stub();
mockRepository.ReplayAll();
@@ -186,11 +183,10 @@
someMechanism
}, random.Next(0, 100), initialValue);
- var context = new FailureMechanismContributionContext(contribution, assessmentSection1);
-
using (var distributionView = new FailureMechanismContributionView
{
- Data = context
+ Data = contribution,
+ AssessmentSection = assessmentSection
})
{
ShowFormWithView(distributionView);
@@ -229,9 +225,9 @@
{
failureMechanismStub
}, 100, 500);
- var context = new FailureMechanismContributionContext(contributionData, assessmentSection);
- view.Data = context;
+ view.Data = contributionData;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Then
@@ -267,9 +263,9 @@
{
failureMechanismStub
}, 100.0 - contribution, norm);
- var context = new FailureMechanismContributionContext(contributionData, assessmentSection);
- view.Data = context;
+ view.Data = contributionData;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Then
@@ -300,8 +296,8 @@
var assessmentSection = new AssessmentSection(composition);
- var context = new FailureMechanismContributionContext(assessmentSection.FailureMechanismContribution, assessmentSection);
- view.Data = context;
+ view.Data = assessmentSection.FailureMechanismContribution;
+ view.AssessmentSection = assessmentSection;
// Call
var compositionComboBox = (ComboBox)new ControlTester(assessmentSectionCompositionComboBoxName).TheObject;
@@ -326,9 +322,8 @@
{
var assessmentSection = new AssessmentSection(initialComposition);
- var context = new FailureMechanismContributionContext(assessmentSection.FailureMechanismContribution, assessmentSection);
-
- view.Data = context;
+ view.Data = assessmentSection.FailureMechanismContribution;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Precondition
@@ -376,9 +371,8 @@
{
var assessmentSection = new AssessmentSection(initialComposition);
- var context = new FailureMechanismContributionContext(assessmentSection.FailureMechanismContribution, assessmentSection);
-
- view.Data = context;
+ view.Data = assessmentSection.FailureMechanismContribution;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Precondition
@@ -428,9 +422,8 @@
var assessmentSection = new AssessmentSection(initialComposition);
assessmentSection.Attach(observer);
- var context = new FailureMechanismContributionContext(assessmentSection.FailureMechanismContribution, assessmentSection);
-
- view.Data = context;
+ view.Data = assessmentSection.FailureMechanismContribution;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Precondition
@@ -506,9 +499,8 @@
assessmentSection.Expect(section => section.ChangeComposition(newComposition));
secondMockRepository.ReplayAll();
- var context = new FailureMechanismContributionContext(failureMechanismContribution, assessmentSection);
-
- view.Data = context;
+ view.Data = failureMechanismContribution;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Precondition
@@ -583,9 +575,8 @@
assessmentSection.Expect(section => section.ChangeComposition(newComposition)).Repeat.Never();
secondMockRepository.ReplayAll();
- var context = new FailureMechanismContributionContext(failureMechanismContribution, assessmentSection);
-
- view.Data = context;
+ view.Data = failureMechanismContribution;
+ view.AssessmentSection = assessmentSection;
ShowFormWithView(view);
// Precondition
Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/FailureMechanismContributionViewInfoTest.cs
===================================================================
diff -u -ra9aafffab97152303562110b1d789bacb465ce24 -r66ee69642e1342ee03613d7d73831346f00d269c
--- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/FailureMechanismContributionViewInfoTest.cs (.../FailureMechanismContributionViewInfoTest.cs) (revision a9aafffab97152303562110b1d789bacb465ce24)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/FailureMechanismContributionViewInfoTest.cs (.../FailureMechanismContributionViewInfoTest.cs) (revision 66ee69642e1342ee03613d7d73831346f00d269c)
@@ -4,7 +4,6 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
-using Ringtoets.Common.Data;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Contribution;
using Ringtoets.Common.Data.FailureMechanism;
@@ -39,23 +38,30 @@
public void GetViewName_Always_ReturnsViewName()
{
// Setup
- var assessmentSection = mocks.Stub();
mocks.ReplayAll();
var view = new FailureMechanismContributionView();
var failureMechanismContribution = new FailureMechanismContribution(Enumerable.Empty(), 30, 1000);
- var context = new FailureMechanismContributionContext(failureMechanismContribution, assessmentSection);
-
// Call
- var viewName = info.GetViewName(view, context);
+ var viewName = info.GetViewName(view, failureMechanismContribution);
// Assert
Assert.AreEqual("Faalkansverdeling", viewName);
}
[Test]
+ public void ViewDataType_Always_ReturnsViewDataType()
+ {
+ // Call
+ var viewDataType = info.ViewDataType;
+
+ // Assert
+ Assert.AreEqual(typeof(FailureMechanismContribution), viewDataType);
+ }
+
+ [Test]
public void ViewType_Always_ReturnsViewType()
{
// Call
@@ -86,6 +92,23 @@
}
[Test]
+ public void GetViewData_Always_Returns_FailureMechanismContribution()
+ {
+ // Setup
+ var contribution = new FailureMechanismContribution(Enumerable.Empty(), 100.0, 123456);
+ var assessmentSection = mocks.StrictMock();
+ var context = new FailureMechanismContributionContext(contribution, assessmentSection);
+
+ mocks.ReplayAll();
+
+ // Call
+ var viewData = info.GetViewData(context);
+
+ // Assert
+ Assert.AreSame(viewData, contribution);
+ }
+
+ [Test]
public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue()
{
// Setup
@@ -98,11 +121,10 @@
.Return(AssessmentSectionComposition.Dike);
mocks.ReplayAll();
- var context = new FailureMechanismContributionContext(contribution, assessmentSection);
-
var view = new FailureMechanismContributionView
{
- Data = context
+ Data = contribution,
+ AssessmentSection = assessmentSection
};
// Call
@@ -132,11 +154,10 @@
mocks.ReplayAll();
- var context = new FailureMechanismContributionContext(contribution1, assessmentSection1);
-
var view = new FailureMechanismContributionView
{
- Data = context
+ Data = contribution1,
+ AssessmentSection = assessmentSection1
};
// Call