Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/ReferenceLineContext.cs
===================================================================
diff -u -r64d5609bb2912cd52dc74deffdd189222e240599 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/ReferenceLineContext.cs (.../ReferenceLineContext.cs) (revision 64d5609bb2912cd52dc74deffdd189222e240599)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/ReferenceLineContext.cs (.../ReferenceLineContext.cs) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -20,76 +20,21 @@
// All rights reserved.
using System;
-using Core.Common.Base;
+using Core.Common.Controls.PresentationObjects;
using Ringtoets.Common.Data.AssessmentSection;
-using Ringtoets.Common.Forms.Properties;
namespace Ringtoets.Common.Forms.PresentationObjects
{
///
/// Presentation object for instances.
///
- public class ReferenceLineContext : Observable
+ public class ReferenceLineContext : ObservableWrappedObjectContextBase
{
///
/// Initializes a new instance of the class.
///
- /// The parent owner of the data represented by the presentation object.
- /// Thrown when is null.
- public ReferenceLineContext(IAssessmentSection parent)
- {
- if (parent == null)
- {
- throw new ArgumentNullException("parent", Resources.ReferenceLineContext_Parent_assessment_section_cannot_be_null);
- }
- Parent = parent;
- }
-
- ///
- /// The reference line data wrapped by this presentation object.
- ///
- public ReferenceLine WrappedData
- {
- get
- {
- return Parent.ReferenceLine;
- }
- }
-
- ///
- /// The assessment section owning .
- ///
- public IAssessmentSection Parent { get; private set; }
-
- #region Equatable
-
- private bool Equals(ReferenceLineContext other)
- {
- return Parent.Equals(other.Parent);
- }
-
- public override bool Equals(object obj)
- {
- if (ReferenceEquals(null, obj))
- {
- return false;
- }
- if (ReferenceEquals(this, obj))
- {
- return true;
- }
- if (obj.GetType() != GetType())
- {
- return false;
- }
- return Equals((ReferenceLineContext)obj);
- }
-
- public override int GetHashCode()
- {
- return Parent.GetHashCode();
- }
-
- #endregion
+ /// The assessment section that is wrapped.
+ /// Thrown when is null.
+ public ReferenceLineContext(IAssessmentSection wrappedAssessmentSection) : base(wrappedAssessmentSection) {}
}
}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.IO/ReferenceLineImporter.cs
===================================================================
diff -u -r63fbdd5525927fbf9d63925eef9da8e17a0d7b44 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Common/src/Ringtoets.Common.IO/ReferenceLineImporter.cs (.../ReferenceLineImporter.cs) (revision 63fbdd5525927fbf9d63925eef9da8e17a0d7b44)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/ReferenceLineImporter.cs (.../ReferenceLineImporter.cs) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -92,9 +92,9 @@
bool clearReferenceLineDependentData = false;
var importTarget = (ReferenceLineContext)targetItem;
- if (importTarget.Parent.ReferenceLine != null)
+ if (importTarget.WrappedData.ReferenceLine != null)
{
- clearReferenceLineDependentData = ConfirmImportOfReferenceLineToClearReferenceLineDependentData(importTarget.Parent);
+ clearReferenceLineDependentData = ConfirmImportOfReferenceLineToClearReferenceLineDependentData(importTarget.WrappedData);
}
if (ImportIsCancelled)
@@ -117,7 +117,7 @@
return false;
}
- AddReferenceLineToDataModel(importTarget.Parent, readResult.ImportedItems.First(), clearReferenceLineDependentData);
+ AddReferenceLineToDataModel(importTarget.WrappedData, readResult.ImportedItems.First(), clearReferenceLineDependentData);
return true;
}
@@ -189,8 +189,6 @@
2, clearReferenceLineDependentData ? 4 : 2);
assessmentSection.ReferenceLine = importedReferenceLine;
- changedObservables.Add(assessmentSection); // Note: Add assessmentSection to the list of changed observables. Otherwise only the reference line context item will be notified.
-
if (clearReferenceLineDependentData && assessmentSection.GetFailureMechanisms() != null)
{
ClearReferenceLineDependentData(assessmentSection);
Index: Ringtoets/Common/src/Ringtoets.Common.IO/Ringtoets.Common.IO.csproj
===================================================================
diff -u -rb79e419a1fcdf3d80760ea4bc35ac354525911d2 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Common/src/Ringtoets.Common.IO/Ringtoets.Common.IO.csproj (.../Ringtoets.Common.IO.csproj) (revision b79e419a1fcdf3d80760ea4bc35ac354525911d2)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/Ringtoets.Common.IO.csproj (.../Ringtoets.Common.IO.csproj) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -69,6 +69,10 @@
Core.Common.Base
False
+
+ {9A2D67E6-26AC-4D17-B11A-2B4372F2F572}
+ Core.Common.Controls
+
{e344867e-9ac9-44c8-88a5-8185681679a9}
Core.Common.IO
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PresentationObjects/ReferenceLineContextTest.cs
===================================================================
diff -u -r507e30ebf13ba63fcedbe9a5b8457f302da26429 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PresentationObjects/ReferenceLineContextTest.cs (.../ReferenceLineContextTest.cs) (revision 507e30ebf13ba63fcedbe9a5b8457f302da26429)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PresentationObjects/ReferenceLineContextTest.cs (.../ReferenceLineContextTest.cs) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -19,9 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
-using System;
-using Core.Common.Base;
-using Core.Common.TestUtil;
+using Core.Common.Controls.PresentationObjects;
using NUnit.Framework;
using Rhino.Mocks;
using Ringtoets.Common.Data.AssessmentSection;
@@ -47,123 +45,9 @@
var referenceLineContext = new ReferenceLineContext(assessmentSection);
// Assert
- Assert.IsInstanceOf(referenceLineContext);
- Assert.AreSame(referenceLine, referenceLineContext.WrappedData);
- Assert.AreSame(assessmentSection, referenceLineContext.Parent);
+ Assert.IsInstanceOf>(referenceLineContext);
+ Assert.AreSame(assessmentSection, referenceLineContext.WrappedData);
mocks.VerifyAll();
}
-
- [Test]
- public void ParameteredConstructor_AssessmentSectionIsNull_ThrowArgumentNullException()
- {
- // Call
- TestDelegate call = () => new ReferenceLineContext(null);
-
- // Assert
- string expectedMessage = "Kan geen presentatie object maken voor een referentielijn zonder een traject als eigenaar.";
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
- }
-
- [Test]
- public void Equals_ContextObjectsHaveSameParent_ReturnTrue()
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection = mocks.Stub();
- mocks.ReplayAll();
-
- var context1 = new ReferenceLineContext(assessmentSection);
- var context2 = new ReferenceLineContext(assessmentSection);
-
- // Call
- var contextsAreEqual1 = context1.Equals(context2);
- var contextsAreEqual2 = context2.Equals(context1);
-
- // Assert
- Assert.IsTrue(contextsAreEqual1);
- Assert.IsTrue(contextsAreEqual2);
- mocks.VerifyAll();
- }
-
- [Test]
- public void Equals_TwoContextsWithDifferentParents_ReturnFalse()
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection1 = mocks.Stub();
- var assessmentSection2 = mocks.Stub();
- mocks.ReplayAll();
-
- var context1 = new ReferenceLineContext(assessmentSection1);
- var context2 = new ReferenceLineContext(assessmentSection2);
-
- // Call
- var contextsAreEqual1 = context1.Equals(context2);
- var contextsAreEqual2 = context2.Equals(context1);
-
- // Assert
- Assert.IsFalse(contextsAreEqual1);
- Assert.IsFalse(contextsAreEqual2);
- mocks.VerifyAll();
- }
-
- [Test]
- public void Equals_ComparingToItself_ReturnTrue()
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection = mocks.Stub();
- mocks.ReplayAll();
-
- var context = new ReferenceLineContext(assessmentSection);
-
- // Call
- var isEqual = context.Equals(context);
-
- // Assert
- Assert.IsTrue(isEqual);
- mocks.VerifyAll();
- }
-
- [Test]
- public void Equals_ComparingToNull_ReturnFalse()
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection = mocks.Stub();
- mocks.ReplayAll();
-
- var context = new ReferenceLineContext(assessmentSection);
-
- // Call
- var isEqual = context.Equals(null);
-
- // Assert
- Assert.IsFalse(isEqual);
- mocks.VerifyAll();
- }
-
- [Test]
- public void GetHashCode_TwoContextInstancesEqualToEachOther_ReturnIdenticalHashes()
- {
- // Setup
- var mocks = new MockRepository();
- var assessmentSection = mocks.StrictMock();
- mocks.ReplayAll();
-
- var context = new ReferenceLineContext(assessmentSection);
-
- var otherContext = new ReferenceLineContext(assessmentSection);
- // Precondition
- Assert.True(context.Equals(otherContext));
-
- // Call
- int contextHashCode = context.GetHashCode();
- int otherContextHashCode = otherContext.GetHashCode();
-
- // Assert
- Assert.AreEqual(contextHashCode, otherContextHashCode);
- mocks.VerifyAll();
- }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/ReferenceLineImporterTest.cs
===================================================================
diff -u -r507e30ebf13ba63fcedbe9a5b8457f302da26429 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/ReferenceLineImporterTest.cs (.../ReferenceLineImporterTest.cs) (revision 507e30ebf13ba63fcedbe9a5b8457f302da26429)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/ReferenceLineImporterTest.cs (.../ReferenceLineImporterTest.cs) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -73,8 +73,7 @@
// Assert
Assert.IsTrue(importSuccesful);
- Assert.IsInstanceOf(assessmentSection.ReferenceLine);
- Assert.AreSame(assessmentSection.ReferenceLine, referenceLineContext.WrappedData);
+ Assert.IsNotNull(assessmentSection.ReferenceLine);
Point2D[] point2Ds = assessmentSection.ReferenceLine.Points.ToArray();
Assert.AreEqual(803, point2Ds.Length);
Assert.AreEqual(193515.719, point2Ds[467].X, 1e-6);
@@ -103,7 +102,7 @@
new ExpectedProgressNotification
{
Text = "Geïmporteerde data toevoegen aan het traject.", CurrentStep = 2, MaxNrOfSteps = 2
- },
+ }
};
var progressChangedCallCount = 0;
var importer = new ReferenceLineImporter
@@ -149,7 +148,6 @@
TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
Assert.IsFalse(importSuccesful);
Assert.IsNull(assessmentSection.ReferenceLine);
- Assert.IsNull(referenceLineContext.WrappedData);
mocks.VerifyAll();
}
@@ -177,7 +175,6 @@
TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
Assert.IsFalse(importSuccesful);
Assert.IsNull(assessmentSection.ReferenceLine);
- Assert.IsNull(referenceLineContext.WrappedData);
mocks.VerifyAll();
}
@@ -194,13 +191,13 @@
var failureMechanism1 = mocks.Stub();
failureMechanism1.Stub(fm => fm.Calculations).Return(new[]
{
- calculation1,
+ calculation1
});
var failureMechanism2 = mocks.Stub();
failureMechanism2.Stub(fm => fm.Calculations).Return(new[]
{
- calculation3,
+ calculation3
});
var assessmentSection = mocks.Stub();
@@ -234,7 +231,6 @@
// Assert
Assert.IsFalse(importSuccesful);
Assert.AreSame(originalReferenceLine, assessmentSection.ReferenceLine);
- Assert.AreSame(assessmentSection.ReferenceLine, referenceLineContext.WrappedData);
Assert.AreEqual("Bevestigen", messageBoxTitle);
var expectedText = "Als u de referentielijn vervangt, zullen alle vakindelingen, berekende hydraulische randvoorwaarden en berekeningsresultaten worden verwijderd." + Environment.NewLine +
@@ -369,7 +365,7 @@
new ExpectedProgressNotification
{
Text = "Verwijderen uitvoer van hydraulische randvoorwaarden.", CurrentStep = 4, MaxNrOfSteps = 4
- },
+ }
};
var progressChangedCallCount = 0;
var importer = new ReferenceLineImporter();
@@ -491,8 +487,7 @@
// Assert
Assert.IsTrue(importSuccesful);
- Assert.IsInstanceOf(assessmentSection.ReferenceLine);
- Assert.AreSame(assessmentSection.ReferenceLine, referenceLineContext.WrappedData);
+ Assert.IsNotNull(assessmentSection.ReferenceLine);
Point2D[] point2Ds = assessmentSection.ReferenceLine.Points.ToArray();
Assert.AreEqual(803, point2Ds.Length);
Assert.AreEqual(195203.563, point2Ds[321].X, 1e-6);
@@ -538,17 +533,19 @@
calculation4
});
+ var contextObserver = mocks.Stub();
+ contextObserver.Expect(o => o.UpdateObserver());
+
var assessmentSection = mocks.Stub();
assessmentSection.ReferenceLine = originalReferenceLine;
assessmentSection.Stub(a => a.GetFailureMechanisms()).Return(new[]
{
failureMechanism1,
failureMechanism2
});
- assessmentSection.Expect(section => section.NotifyObservers());
+ assessmentSection.Expect(section => section.Attach(contextObserver));
+ assessmentSection.Expect(section => section.NotifyObservers()).Do((Action)(() => contextObserver.UpdateObserver()));
- var contextObserver = mocks.Stub();
- contextObserver.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
var path = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "traject_10-2.shp");
@@ -593,7 +590,7 @@
var path = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "traject_10-2.shp");
var referenceLineContext = new ReferenceLineContext(assessmentSection);
- referenceLineContext.Parent.Attach(observer);
+ referenceLineContext.WrappedData.Attach(observer);
var importer = new ReferenceLineImporter();
@@ -628,14 +625,15 @@
calculation1
});
+ var contextObserver = mocks.StrictMock();
var assessmentSection = mocks.Stub();
assessmentSection.ReferenceLine = originalReferenceLine;
assessmentSection.Stub(a => a.GetFailureMechanisms()).Return(new[]
{
failureMechanism1
});
+ assessmentSection.Expect(section => section.Attach(contextObserver));
- var contextObserver = mocks.StrictMock();
mocks.ReplayAll();
var path = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "traject_10-2.shp");
@@ -701,17 +699,19 @@
calculation4
});
+ var contextObserver = mocks.Stub();
+ contextObserver.Expect(o => o.UpdateObserver());
+
var assessmentSection = mocks.Stub();
assessmentSection.ReferenceLine = originalReferenceLine;
assessmentSection.Stub(a => a.GetFailureMechanisms()).Return(new[]
{
failureMechanism1,
failureMechanism2
});
- assessmentSection.Expect(section => section.NotifyObservers());
+ assessmentSection.Expect(section => section.Attach(contextObserver));
+ assessmentSection.Expect(section => section.NotifyObservers()).Do((Action)(() => contextObserver.UpdateObserver()));
- var contextObserver = mocks.Stub();
- contextObserver.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
var path = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "traject_10-2.shp");
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Ringtoets.Common.IO.Test.csproj
===================================================================
diff -u -r507e30ebf13ba63fcedbe9a5b8457f302da26429 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Ringtoets.Common.IO.Test.csproj (.../Ringtoets.Common.IO.Test.csproj) (revision 507e30ebf13ba63fcedbe9a5b8457f302da26429)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Ringtoets.Common.IO.Test.csproj (.../Ringtoets.Common.IO.Test.csproj) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -59,6 +59,10 @@
{3bbfd65b-b277-4e50-ae6d-bd24c3434609}
Core.Common.Base
+
+ {9A2D67E6-26AC-4D17-B11A-2B4372F2F572}
+ Core.Common.Controls
+
{e344867e-9ac9-44c8-88a5-8185681679a9}
Core.Common.IO
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs
===================================================================
diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -312,7 +312,7 @@
{
Text = context => RingtoetsCommonDataResources.ReferenceLine_DisplayName,
Image = context => RingtoetsCommonFormsResources.ReferenceLineIcon,
- ForeColor = context => context.WrappedData == null ?
+ ForeColor = context => context.WrappedData.ReferenceLine == null ?
Color.FromKnownColor(KnownColor.GrayText) :
Color.FromKnownColor(KnownColor.ControlText),
ContextMenuStrip = (nodeData, parentData, treeViewControl) =>
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/AssessmentSectionTreeNodeInfoTest.cs
===================================================================
diff -u -r63fbdd5525927fbf9d63925eef9da8e17a0d7b44 -rf01bfd8d4c0541a96d57071b397c39792a99da26
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/AssessmentSectionTreeNodeInfoTest.cs (.../AssessmentSectionTreeNodeInfoTest.cs) (revision 63fbdd5525927fbf9d63925eef9da8e17a0d7b44)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/AssessmentSectionTreeNodeInfoTest.cs (.../AssessmentSectionTreeNodeInfoTest.cs) (revision f01bfd8d4c0541a96d57071b397c39792a99da26)
@@ -180,8 +180,7 @@
// Assert
Assert.AreEqual(22, objects.Length);
var referenceLineContext = (ReferenceLineContext) objects[0];
- Assert.AreSame(assessmentSection.ReferenceLine, referenceLineContext.WrappedData);
- Assert.AreSame(assessmentSection, referenceLineContext.Parent);
+ Assert.AreSame(assessmentSection, referenceLineContext.WrappedData);
var contributionContext = (FailureMechanismContributionContext) objects[1];
Assert.AreSame(contribution, contributionContext.WrappedData);