Index: Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs =================================================================== diff -u -rb6f4e414fc874653cc6ad84b80f330b28e69b823 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision b6f4e414fc874653cc6ad84b80f330b28e69b823) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -721,7 +721,7 @@ } } - # region Nested types + #region Nested types private class TreeNodeObserver : IDisposable, IObserver { @@ -755,9 +755,9 @@ } } - # endregion + #endregion - # region TreeView event handling + #region TreeView event handling private void TreeViewBeforeLabelEdit(object sender, NodeLabelEditEventArgs e) { @@ -957,6 +957,6 @@ } } - # endregion + #endregion } } \ No newline at end of file Index: Core/Common/test/Core.Common.Gui.Test/Forms/ViewHost/AvalonDockViewHostTest.cs =================================================================== diff -u -r650277f75faab8d29b4a07b738f0fd2a99ac7ed3 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Core/Common/test/Core.Common.Gui.Test/Forms/ViewHost/AvalonDockViewHostTest.cs (.../AvalonDockViewHostTest.cs) (revision 650277f75faab8d29b4a07b738f0fd2a99ac7ed3) +++ Core/Common/test/Core.Common.Gui.Test/Forms/ViewHost/AvalonDockViewHostTest.cs (.../AvalonDockViewHostTest.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -107,7 +107,7 @@ Assert.IsFalse(IsAnyViewFocussed(avalonDockViewHost)); } - # region Document views + #region Document views [Test] public void AddDocumentView_NonControlView_ViewNotAddedAndNoViewOpenedEventFired() @@ -546,9 +546,9 @@ } } - # endregion + #endregion - # region Tool views + #region Tool views [Test] public void AddToolView_NonControlView_ViewNotAddedAndNoViewOpenedEventFired() @@ -843,9 +843,9 @@ } } - # endregion + #endregion - # region Helper methods + #region Helper methods private static bool IsDocumentViewPresent(AvalonDockViewHost avalonDockViewHost, IView documentView) { @@ -910,6 +910,6 @@ .First(lc => ((WindowsFormsHost) lc.Content).Child == view).IconSource != null; } - # endregion + #endregion } } \ No newline at end of file Index: Core/Plugins/src/Core.Plugins.Chart/Legend/ChartLegendView.cs =================================================================== diff -u -r848c3a050bda5fb0dd74232deb7f1d5eba8ecbf6 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Core/Plugins/src/Core.Plugins.Chart/Legend/ChartLegendView.cs (.../ChartLegendView.cs) (revision 848c3a050bda5fb0dd74232deb7f1d5eba8ecbf6) +++ Core/Plugins/src/Core.Plugins.Chart/Legend/ChartLegendView.cs (.../ChartLegendView.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -162,7 +162,7 @@ #endregion - # region ChartDataCollection + #region ChartDataCollection private static object[] GetCollectionChildNodeObjects(ChartDataCollection chartDataCollection) { @@ -190,6 +190,6 @@ parent.NotifyObservers(); } - # endregion + #endregion } } \ No newline at end of file Index: Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.cs =================================================================== diff -u -r650277f75faab8d29b4a07b738f0fd2a99ac7ed3 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.cs (.../MapLegendView.cs) (revision 650277f75faab8d29b4a07b738f0fd2a99ac7ed3) +++ Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.cs (.../MapLegendView.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -168,7 +168,7 @@ #endregion - # region MapDataCollection + #region MapDataCollection private static bool MapControlCanDrop(object draggedData, object targetData) { @@ -201,7 +201,7 @@ return contextMenuBuilderProvider.Get(mapDataCollection, treeView).AddCustomItem(addMapLayerMenuItem).Build(); } - # endregion + #endregion #region ShapeFileImporter Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Ringtoets.ClosingStructures.Forms.csproj =================================================================== diff -u -rbc4c4000ca4a850b49a88156ca2b919ea690494b -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Ringtoets.ClosingStructures.Forms.csproj (.../Ringtoets.ClosingStructures.Forms.csproj) (revision bc4c4000ca4a850b49a88156ca2b919ea690494b) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Ringtoets.ClosingStructures.Forms.csproj (.../Ringtoets.ClosingStructures.Forms.csproj) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -67,6 +67,12 @@ ClosingStructuresScenariosView.cs + + UserControl + + + ClosingStructuresFailureMechanismView.cs + @@ -94,6 +100,21 @@ Core.Common.Utils False + + {5a91174a-fb95-4c9d-9ca5-81c0b8d4361a} + Core.Components.DotSpatial.Forms + False + + + {4A06DF0D-5D75-4BAD-A95A-A3DB9B7C4AD5} + Core.Components.Gis.Forms + False + + + {318BA582-88C9-4816-A54A-A7E431461DE3} + Core.Components.Gis + False + {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data @@ -109,6 +130,11 @@ Ringtoets.Common.Utils False + + {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} + Ringtoets.HydraRing.Data + False + {C6309704-D67B-434C-BC98-9F8910BC1D10} Ringtoets.ClosingStructures.Data @@ -124,6 +150,9 @@ ClosingStructuresScenariosView.cs + + ClosingStructuresFailureMechanismView.cs + Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.Designer.cs =================================================================== diff -u --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.Designer.cs (revision 0) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.Designer.cs (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -0,0 +1,65 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Ringtoets.ClosingStructures.Forms.Views +{ + partial class ClosingStructuresFailureMechanismView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.mapControl = new Core.Components.DotSpatial.Forms.MapControl(); + this.SuspendLayout(); + // + // MapView + // + this.mapControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.mapControl.Location = new System.Drawing.Point(0, 0); + this.mapControl.Name = "mapControl"; + this.mapControl.Size = new System.Drawing.Size(150, 150); + this.mapControl.TabIndex = 0; + this.mapControl.Text = "mapControl1"; + // + // ClosingStructuresFailureMechanismView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.mapControl); + this.Name = "ClosingStructuresFailureMechanismView"; + this.ResumeLayout(false); + + } + + #endregion + + private Core.Components.DotSpatial.Forms.MapControl mapControl; + } +} Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs =================================================================== diff -u --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (revision 0) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -0,0 +1,184 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Collections.Generic; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Components.Gis.Data; +using Core.Components.Gis.Features; +using Core.Components.Gis.Forms; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.Views; +using Ringtoets.ClosingStructures.Data; +using Ringtoets.ClosingStructures.Forms.PresentationObjects; +using Ringtoets.HydraRing.Data; +using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; +using ClosingStructuresDataResources = Ringtoets.ClosingStructures.Data.Properties.Resources; + +namespace Ringtoets.ClosingStructures.Forms.Views +{ + /// + /// This class is a view showing map data for a grass cover erosion outwards failure mechanism. + /// + public partial class ClosingStructuresFailureMechanismView : UserControl, IMapView + { + private readonly Observer failureMechanismObserver; + private readonly Observer assessmentSectionObserver; + private readonly Observer foreshoreProfilesObserver; + private readonly Observer structuresObserver; + + private readonly MapLineData referenceLineMapData; + private readonly MapLineData sectionsMapData; + private readonly MapPointData sectionsStartPointMapData; + private readonly MapPointData sectionsEndPointMapData; + private readonly MapPointData hydraulicBoundaryDatabaseMapData; + private readonly MapLineData foreshoreProfilesMapData; + private readonly MapPointData structuresMapData; + + private ClosingStructuresFailureMechanismContext data; + + /// + /// Creates a new instance of . + /// + public ClosingStructuresFailureMechanismView() + { + InitializeComponent(); + + failureMechanismObserver = new Observer(UpdateMapData); + assessmentSectionObserver = new Observer(UpdateMapData); + foreshoreProfilesObserver = new Observer(UpdateMapData); + structuresObserver = new Observer(UpdateMapData); + + referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); + hydraulicBoundaryDatabaseMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryDatabaseMapData(); + foreshoreProfilesMapData = RingtoetsMapDataFactory.CreateForeshoreProfileMapData(); + structuresMapData = RingtoetsMapDataFactory.CreateStructuresMapData(); + + sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); + sectionsStartPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsStartPointMapData(); + sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); + + mapControl.Data.Add(referenceLineMapData); + mapControl.Data.Add(sectionsMapData); + mapControl.Data.Add(sectionsStartPointMapData); + mapControl.Data.Add(sectionsEndPointMapData); + mapControl.Data.Add(hydraulicBoundaryDatabaseMapData); + mapControl.Data.Add(foreshoreProfilesMapData); + mapControl.Data.Add(structuresMapData); + + mapControl.Data.Name = ClosingStructuresDataResources.ClosingStructuresFailureMechanism_DisplayName; + } + + public object Data + { + get + { + return data; + } + set + { + data = value as ClosingStructuresFailureMechanismContext; + + if (data == null) + { + failureMechanismObserver.Observable = null; + assessmentSectionObserver.Observable = null; + foreshoreProfilesObserver.Observable = null; + structuresObserver.Observable = null; + + Map.ResetMapData(); + return; + } + + failureMechanismObserver.Observable = data.WrappedData; + assessmentSectionObserver.Observable = data.Parent; + foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; + structuresObserver.Observable = data.WrappedData.ClosingStructures; + + UpdateMapData(); + } + } + + public IMapControl Map + { + get + { + return mapControl; + } + } + + protected override void Dispose(bool disposing) + { + failureMechanismObserver.Dispose(); + assessmentSectionObserver.Dispose(); + foreshoreProfilesObserver.Dispose(); + + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void UpdateMapData() + { + ReferenceLine referenceLine = null; + IEnumerable failureMechanismSections = null; + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = null; + IEnumerable foreshoreProfiles = null; + IEnumerable structures = null; + + if (data != null) + { + referenceLine = data.Parent.ReferenceLine; + failureMechanismSections = data.WrappedData.Sections; + hydraulicBoundaryDatabase = data.Parent.HydraulicBoundaryDatabase; + foreshoreProfiles = data.WrappedData.ForeshoreProfiles; + structures = data.WrappedData.ClosingStructures; + } + + UpdateFeatureBasedMapData(referenceLineMapData, + RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine)); + UpdateFeatureBasedMapData(sectionsMapData, + RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections)); + UpdateFeatureBasedMapData(sectionsStartPointMapData, + RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections)); + UpdateFeatureBasedMapData(sectionsEndPointMapData, + RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionEndPointFeatures(failureMechanismSections)); + UpdateFeatureBasedMapData(hydraulicBoundaryDatabaseMapData, + RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryDatabaseFeatures(hydraulicBoundaryDatabase)); + UpdateFeatureBasedMapData(foreshoreProfilesMapData, + RingtoetsMapDataFeaturesFactory.CreateForeshoreProfilesFeatures(foreshoreProfiles)); + UpdateFeatureBasedMapData(structuresMapData, + RingtoetsMapDataFeaturesFactory.CreateStructuresFeatures(structures)); + + mapControl.Data.NotifyObservers(); + } + + private static void UpdateFeatureBasedMapData(FeatureBasedMapData mapData, MapFeature[] features) + { + mapData.Features = features; + mapData.NotifyObservers(); + } + } +} \ No newline at end of file Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.resx =================================================================== diff -u --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.resx (revision 0) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.resx (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -rf724e2a23cc180381b736c4da1318d87398e5758 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision f724e2a23cc180381b736c4da1318d87398e5758) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -70,6 +70,14 @@ public override IEnumerable GetViewInfos() { + yield return new ViewInfo + { + GetViewName = (view, mechanism) => mechanism.WrappedData.Name, + Image = RingtoetsCommonFormsResources.CalculationIcon, + CloseForData = CloseClosingStructuresFailureMechanismViewForData, + AdditionalDataCheck = context => context.WrappedData.IsRelevant + }; + yield return new ViewInfo< FailureMechanismSectionResultContext, IEnumerable, @@ -217,6 +225,23 @@ #region ViewInfo + #region HeightStructuresFailureMechanismView ViewInfo + + private bool CloseClosingStructuresFailureMechanismViewForData(ClosingStructuresFailureMechanismView view, object o) + { + var assessmentSection = o as IAssessmentSection; + var failureMechanism = o as ClosingStructuresFailureMechanism; + + var viewFailureMechanismContext = (ClosingStructuresFailureMechanismContext)view.Data; + var viewFailureMechanism = viewFailureMechanismContext.WrappedData; + + return assessmentSection != null + ? ReferenceEquals(viewFailureMechanismContext.Parent, assessmentSection) + : ReferenceEquals(viewFailureMechanism, failureMechanism); + } + + #endregion + #region ClosingStructuresFailureMechanismResultView ViewInfo private static bool CloseFailureMechanismResultViewForData(ClosingStructuresFailureMechanismResultView view, object o) Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/Ringtoets.ClosingStructures.Plugin.csproj =================================================================== diff -u -rbc4c4000ca4a850b49a88156ca2b919ea690494b -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/Ringtoets.ClosingStructures.Plugin.csproj (.../Ringtoets.ClosingStructures.Plugin.csproj) (revision bc4c4000ca4a850b49a88156ca2b919ea690494b) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/Ringtoets.ClosingStructures.Plugin.csproj (.../Ringtoets.ClosingStructures.Plugin.csproj) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -70,6 +70,11 @@ Core.Common.Gui False + + {4a06df0d-5d75-4bad-a95a-a3db9b7c4ad5} + Core.Components.Gis.Forms + False + {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj =================================================================== diff -u -r2d5e2d09b0cb1a7f48e1b0a067d332347c89d4a8 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj (.../Ringtoets.ClosingStructures.Forms.Test.csproj) (revision 2d5e2d09b0cb1a7f48e1b0a067d332347c89d4a8) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Ringtoets.ClosingStructures.Forms.Test.csproj (.../Ringtoets.ClosingStructures.Forms.Test.csproj) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -84,6 +84,7 @@ + @@ -125,6 +126,18 @@ {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil + + {5A91174A-FB95-4C9D-9CA5-81C0B8D4361A} + Core.Components.DotSpatial.Forms + + + {4A06DF0D-5D75-4BAD-A95A-A3DB9B7C4AD5} + Core.Components.Gis.Forms + + + {318ba582-88c9-4816-a54a-a7e431461de3} + Core.Components.Gis + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} Ringtoets.Common.Data Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs =================================================================== diff -u --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (revision 0) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -0,0 +1,684 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Base.Geometry; +using Core.Components.DotSpatial.Forms; +using Core.Components.Gis.Data; +using Core.Components.Gis.Forms; +using NUnit.Framework; +using Ringtoets.Common.Data; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.TestUtil; +using Ringtoets.HydraRing.Data; +using Ringtoets.ClosingStructures.Data; +using Ringtoets.ClosingStructures.Data.TestUtil; +using Ringtoets.ClosingStructures.Forms.PresentationObjects; +using Ringtoets.ClosingStructures.Forms.Views; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; +using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; +using ClosingStructuresDataResources = Ringtoets.ClosingStructures.Data.Properties.Resources; + +namespace Ringtoets.ClosingStructures.Forms.Test.Views +{ + [TestFixture] + public class ClosingStructuresFailureMechanismViewTest + { + private const int referenceLineIndex = 0; + private const int sectionsIndex = 1; + private const int sectionsStartPointIndex = 2; + private const int sectionsEndPointIndex = 3; + private const int hydraulicBoundaryDatabaseIndex = 4; + private const int foreshoreProfilesIndex = 5; + private const int structuresIndex = 6; + + [Test] + public void DefaultConstructor_DefaultValues() + { + // Call + using (var view = new ClosingStructuresFailureMechanismView()) + { + // Assert + Assert.IsInstanceOf(view); + Assert.IsInstanceOf(view); + Assert.IsNotNull(view.Map); + Assert.IsNull(view.Data); + } + } + + [Test] + public void DefaultConstructor_Always_AddMapControlWithCollectionOfEmptyMapData() + { + // Call + using (var view = new ClosingStructuresFailureMechanismView()) + { + // Assert + Assert.AreEqual(1, view.Controls.Count); + Assert.AreSame(view.Map, view.Controls[0]); + Assert.AreEqual(DockStyle.Fill, ((Control)view.Map).Dock); + Assert.AreEqual(ClosingStructuresDataResources.ClosingStructuresFailureMechanism_DisplayName, view.Map.Data.Name); + AssertEmptyMapData(view.Map.Data); + } + } + + [Test] + public void Data_ClosingStructuresFailureMechanismContext_DataSet() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), new TestAssessmentSection()); + + // Call + view.Data = failureMechanismContext; + + // Assert + Assert.AreSame(failureMechanismContext, view.Data); + } + } + + [Test] + public void Data_OtherThanClosingStructuresFailureMechanismContext_DataNull() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var data = new object(); + + // Call + view.Data = data; + + // Assert + Assert.IsNull(view.Data); + } + } + + [Test] + public void Data_SetToNull_MapDataCleared() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), new TestAssessmentSection()); + + view.Data = failureMechanismContext; + + // Precondition + Assert.AreEqual(7, view.Map.Data.Collection.Count()); + + // Call + view.Data = null; + + // Assert + Assert.IsNull(view.Data); + Assert.IsNull(view.Map.Data); + } + } + + [Test] + public void Data_EmptyClosingStructuresFailureMechanismContext_NoMapDataSet() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), new TestAssessmentSection()); + + // Call + view.Data = failureMechanismContext; + + // Assert + Assert.AreSame(failureMechanismContext, view.Data); + AssertEmptyMapData(view.Map.Data); + } + } + + [Test] + public void Data_ClosingStructuresFailureMechanismContext_DataUpdatedToCollectionOfFilledMapData() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var geometryPoints = new[] + { + new Point2D(0.0, 0.0), + new Point2D(2.0, 0.0), + new Point2D(4.0, 4.0), + new Point2D(6.0, 4.0) + }; + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(1, "test", 1.0, 2.0)); + + var referenceLine = new ReferenceLine(); + referenceLine.SetGeometry(new[] + { + new Point2D(1.0, 2.0), + new Point2D(2.0, 1.0) + }); + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase, + ReferenceLine = referenceLine + }; + + var failureMechanism = new ClosingStructuresFailureMechanism(); + failureMechanism.AddSection(new FailureMechanismSection("A", geometryPoints.Take(2))); + failureMechanism.AddSection(new FailureMechanismSection("B", geometryPoints.Skip(1).Take(2))); + failureMechanism.AddSection(new FailureMechanismSection("C", geometryPoints.Skip(2).Take(2))); + + failureMechanism.ForeshoreProfiles.Add(new TestForeshoreProfile()); + failureMechanism.ForeshoreProfiles.Add(new TestForeshoreProfile()); + + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); + + // Call + view.Data = failureMechanismContext; + + // Assert + Assert.AreSame(failureMechanismContext, view.Data); + + var mapData = map.Data; + Assert.IsInstanceOf(mapData); + + var mapDataList = mapData.Collection.ToList(); + Assert.AreEqual(7, mapDataList.Count); + AssertReferenceLineMapData(assessmentSection.ReferenceLine, mapDataList[referenceLineIndex]); + AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); + AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); + AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); + AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); + } + } + + [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var hydraulicBoundaryDatabase1 = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + var hydraulicBoundaryDatabase2 = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase1 + }; + + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + + // Call + assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; + assessmentSection.NotifyObservers(); + + // Assert + AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + } + } + + [Test] + public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var points1 = new List + { + new Point2D(1.0, 2.0), + new Point2D(2.0, 1.0) + }; + + var points2 = new List + { + new Point2D(2.0, 5.0), + new Point2D(4.0, 3.0) + }; + + var assessmentSection = new TestAssessmentSection + { + ReferenceLine = new ReferenceLine() + }; + assessmentSection.ReferenceLine.SetGeometry(points1); + + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var referenceLineMapData = map.Data.Collection.ElementAt(referenceLineIndex); + + // Precondition + AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData); + + // Call + assessmentSection.ReferenceLine.SetGeometry(points2); + assessmentSection.NotifyObservers(); + + // Assert + AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData); + } + } + + [Test] + public void UpdateObserver_FailureMechanismSectionsUpdated_MapDataUpdated() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var failureMechanism = new ClosingStructuresFailureMechanism(); + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, new TestAssessmentSection()); + + view.Data = failureMechanismContext; + + var sectionMapData = (MapLineData)map.Data.Collection.ElementAt(sectionsIndex); + var sectionStartsMapData = (MapPointData)map.Data.Collection.ElementAt(sectionsStartPointIndex); + var sectionsEndsMapData = (MapPointData)map.Data.Collection.ElementAt(sectionsEndPointIndex); + + // Call + failureMechanism.AddSection(new FailureMechanismSection(string.Empty, new[] + { + new Point2D(1, 2), + new Point2D(1, 2) + })); + failureMechanism.NotifyObservers(); + + // Assert + AssertFailureMechanismSectionsMapData(failureMechanism.Sections, sectionMapData); + AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, sectionStartsMapData); + AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, sectionsEndsMapData); + } + } + + [Test] + public void UpdateObserver_ForeshoreProfilesUpdated_MapDataUpdated() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var failureMechanism = new ClosingStructuresFailureMechanism(); + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, new TestAssessmentSection()); + + failureMechanism.ForeshoreProfiles.Add(new TestForeshoreProfile()); + + view.Data = failureMechanismContext; + + var foreshoreProfileData = map.Data.Collection.ElementAt(foreshoreProfilesIndex); + + // Precondition + AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + + // Call + failureMechanism.ForeshoreProfiles.Add(new TestForeshoreProfile()); + failureMechanism.ForeshoreProfiles.NotifyObservers(); + + // Assert + AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + } + } + + [Test] + public void UpdateObserver_StructuresUpdated_MapDataUpdated() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var failureMechanism = new ClosingStructuresFailureMechanism(); + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, new TestAssessmentSection()); + + failureMechanism.ForeshoreProfiles.Add(new TestForeshoreProfile()); + + view.Data = failureMechanismContext; + + var structuresData = map.Data.Collection.ElementAt(structuresIndex); + + // Precondition + AssertStructures(failureMechanism.ClosingStructures, structuresData); + + // Call + failureMechanism.ClosingStructures.Add(new TestClosingStructure()); + failureMechanism.ClosingStructures.NotifyObservers(); + + // Assert + AssertStructures(failureMechanism.ClosingStructures, structuresData); + } + } + + [Test] + public void UpdateObserver_DataUpdated_MapLayersSameOrder() + { + // Setup + const int updatedRefenceLineLayerIndex = referenceLineIndex + 6; + const int updatedSectionsLayerIndex = sectionsIndex - 1; + const int updateSectionStartLayerIndex = sectionsStartPointIndex - 1; + const int updatedSectionEndLayerIndex = sectionsEndPointIndex - 1; + const int updatedHydraulicLocationsLayerIndex = hydraulicBoundaryDatabaseIndex - 1; + const int updatedForeshoreProfilesLayerIndex = foreshoreProfilesIndex - 1; + const int updatedStructuresLayerIndex = structuresIndex- 1; + + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + var assessmentSection = new TestAssessmentSection(); + var failureMechanism = new ClosingStructuresFailureMechanism(); + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); + + view.Data = failureMechanismContext; + + var mapData = map.Data; + + var dataToMove = (MapLineData)map.Data.Collection.ElementAt(referenceLineIndex); + mapData.Remove(dataToMove); + mapData.Add(dataToMove); + + var mapDataList = mapData.Collection.ToList(); + + // Precondition + var referenceLineData = (MapLineData)mapDataList[updatedRefenceLineLayerIndex]; + Assert.AreEqual("Referentielijn", referenceLineData.Name); + + var sectionsData = (MapLineData)mapDataList[updatedSectionsLayerIndex]; + Assert.AreEqual("Vakindeling", sectionsData.Name); + + var sectionStartsData = (MapPointData)mapDataList[updateSectionStartLayerIndex]; + Assert.AreEqual("Vakindeling (startpunten)", sectionStartsData.Name); + + var sectionEndsData = (MapPointData)mapDataList[updatedSectionEndLayerIndex]; + Assert.AreEqual("Vakindeling (eindpunten)", sectionEndsData.Name); + + var hydraulicLocationsData = (MapPointData)mapDataList[updatedHydraulicLocationsLayerIndex]; + Assert.AreEqual("Hydraulische randvoorwaarden", hydraulicLocationsData.Name); + + var foreshoreProfilesData = (MapLineData)mapDataList[updatedForeshoreProfilesLayerIndex]; + Assert.AreEqual("Voorlandprofielen", foreshoreProfilesData.Name); + + var structuresData = (MapPointData)mapDataList[updatedStructuresLayerIndex]; + Assert.AreEqual("Kunstwerken", structuresData.Name); + + var points = new List + { + new Point2D(2.0, 5.0), + new Point2D(4.0, 3.0) + }; + ReferenceLine referenceLine = new ReferenceLine(); + referenceLine.SetGeometry(points); + assessmentSection.ReferenceLine = referenceLine; + + // Call + assessmentSection.NotifyObservers(); + + // Call + var actualReferenceLineData = (MapLineData)mapDataList[updatedRefenceLineLayerIndex]; + Assert.AreEqual("Referentielijn", actualReferenceLineData.Name); + + var actualSectionsData = (MapLineData)mapDataList[updatedSectionsLayerIndex]; + Assert.AreEqual("Vakindeling", actualSectionsData.Name); + + var actualSectionStartsData = (MapPointData)mapDataList[updateSectionStartLayerIndex]; + Assert.AreEqual("Vakindeling (startpunten)", actualSectionStartsData.Name); + + var actualSectionEndsData = (MapPointData)mapDataList[updatedSectionEndLayerIndex]; + Assert.AreEqual("Vakindeling (eindpunten)", actualSectionEndsData.Name); + + var actualHydraulicLocationsData = (MapPointData)mapDataList[updatedHydraulicLocationsLayerIndex]; + Assert.AreEqual("Hydraulische randvoorwaarden", actualHydraulicLocationsData.Name); + + var actualForeshoreProfilesData = (MapLineData)mapDataList[updatedForeshoreProfilesLayerIndex]; + Assert.AreEqual("Voorlandprofielen", actualForeshoreProfilesData.Name); + + var actualStructuresData = (MapPointData)mapDataList[updatedStructuresLayerIndex]; + Assert.AreEqual("Kunstwerken", actualStructuresData.Name); + } + } + + [Test] + public void NotifyObservers_DataUpdatedNotifyObserversOnOldData_NoUpdateInViewData() + { + // Setup + IAssessmentSection oldAssessmentSection = new TestAssessmentSection(); + IAssessmentSection newAssessmentSection = new TestAssessmentSection(); + + newAssessmentSection.ReferenceLine = new ReferenceLine(); + newAssessmentSection.ReferenceLine.SetGeometry(new[] + { + new Point2D(2, 4), + new Point2D(3, 4) + }); + + var oldClosingStructuresFailureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), oldAssessmentSection); + var newClosingStructuresFailureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), newAssessmentSection); + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl)view.Controls[0]; + + view.Data = oldClosingStructuresFailureMechanismContext; + view.Data = newClosingStructuresFailureMechanismContext; + MapData dataBeforeUpdate = map.Data; + + newAssessmentSection.ReferenceLine.SetGeometry(Enumerable.Empty()); + + // Call + oldAssessmentSection.NotifyObservers(); + + // Assert + Assert.AreEqual(dataBeforeUpdate, map.Data); + } + } + + private static void AssertReferenceLineMapData(ReferenceLine referenceLine, MapData mapData) + { + Assert.IsInstanceOf(mapData); + var referenceLineData = (MapLineData)mapData; + if (referenceLine == null) + { + CollectionAssert.IsEmpty(referenceLineData.Features.First().MapGeometries.First().PointCollections.First()); + } + else + { + CollectionAssert.AreEqual(referenceLine.Points, referenceLineData.Features.First().MapGeometries.First().PointCollections.First()); + } + Assert.AreEqual("Referentielijn", mapData.Name); + } + + private static void AssertForeshoreProfiles(IEnumerable foreshoreProfiles, MapData mapData) + { + Assert.NotNull(foreshoreProfiles, "foreshoreProfiles should never be null."); + + var foreshoreProfilesData = (MapLineData)mapData; + var foreshoreProfileArray = foreshoreProfiles.ToArray(); + + Assert.AreEqual(foreshoreProfileArray.Length, foreshoreProfilesData.Features.Length); + + for (int i = 0; i < foreshoreProfileArray.Length; i++) + { + var profileDataA = foreshoreProfilesData.Features.ElementAt(i).MapGeometries.First(); + CollectionAssert.AreEquivalent(foreshoreProfileArray[0].Geometry, profileDataA.PointCollections.First()); + } + + Assert.AreEqual("Voorlandprofielen", mapData.Name); + } + + private static void AssertStructures(IEnumerable structures, MapData mapData) + { + Assert.NotNull(structures, "structures should never be null."); + + var structuresData = (MapPointData)mapData; + var structuresArray = structures.ToArray(); + + Assert.AreEqual(structuresArray.Length, structuresData.Features.Length); + + for (int i = 0; i < structuresArray.Length; i++) + { + var profileDataA = structuresData.Features.ElementAt(i).MapGeometries.First(); + Assert.AreEqual(structuresArray[0].Location, profileDataA.PointCollections.First().First()); + } + + Assert.AreEqual("Kunstwerken", mapData.Name); + } + + private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) + { + Assert.IsInstanceOf(mapData); + var hydraulicLocationsMapData = (MapPointData)mapData; + if (database == null) + { + CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); + } + else + { + CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); + } + Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); + } + + private static void AssertFailureMechanismSectionsMapData(IEnumerable sections, MapData mapData) + { + Assert.IsInstanceOf(mapData); + var sectionsMapLinesData = (MapLineData)mapData; + var sectionMapLinesFeatures = sectionsMapLinesData.Features.ToArray(); + Assert.AreEqual(1, sectionMapLinesFeatures.Length); + + var geometries = sectionMapLinesFeatures.First().MapGeometries.ToArray(); + var sectionsArray = sections.ToArray(); + Assert.AreEqual(sectionsArray.Length, geometries.Length); + + for (int index = 0; index < sectionsArray.Length; index++) + { + var failureMechanismSection = sectionsArray[index]; + CollectionAssert.AreEquivalent(failureMechanismSection.Points, geometries[index].PointCollections.First()); + } + Assert.AreEqual("Vakindeling", mapData.Name); + } + + private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) + { + Assert.IsInstanceOf(mapData); + var sectionsStartPointData = (MapPointData)mapData; + CollectionAssert.AreEqual(sections.Select(s => s.GetStart()), sectionsStartPointData.Features.First().MapGeometries.First().PointCollections.First()); + Assert.AreEqual("Vakindeling (startpunten)", mapData.Name); + } + + private static void AssertFailureMechanismSectionsEndPointMapData(IEnumerable sections, MapData mapData) + { + Assert.IsInstanceOf(mapData); + var sectionsStartPointData = (MapPointData)mapData; + CollectionAssert.AreEqual(sections.Select(s => s.GetLast()), sectionsStartPointData.Features.First().MapGeometries.First().PointCollections.First()); + Assert.AreEqual("Vakindeling (eindpunten)", mapData.Name); + } + + private static void AssertEmptyMapData(MapDataCollection mapData) + { + Assert.IsInstanceOf(mapData); + + var mapDataList = mapData.Collection.ToList(); + + Assert.AreEqual(7, mapDataList.Count); + + var referenceLineMapData = (MapLineData)mapDataList[referenceLineIndex]; + var sectionsMapData = (MapLineData)mapDataList[sectionsIndex]; + var foreshoreProfilesMapData = (MapLineData)mapDataList[foreshoreProfilesIndex]; + var structuresMapData = (MapPointData)mapDataList[structuresIndex]; + var sectionsStartPointMapData = (MapPointData)mapDataList[sectionsStartPointIndex]; + var sectionsEndPointMapData = (MapPointData)mapDataList[sectionsEndPointIndex]; + var hydraulicBoundaryDatabaseMapData = (MapPointData)mapDataList[hydraulicBoundaryDatabaseIndex]; + + CollectionAssert.IsEmpty(referenceLineMapData.Features); + CollectionAssert.IsEmpty(sectionsMapData.Features); + CollectionAssert.IsEmpty(foreshoreProfilesMapData.Features); + CollectionAssert.IsEmpty(structuresMapData.Features); + CollectionAssert.IsEmpty(sectionsStartPointMapData.Features); + CollectionAssert.IsEmpty(sectionsEndPointMapData.Features); + CollectionAssert.IsEmpty(hydraulicBoundaryDatabaseMapData.Features); + + Assert.AreEqual(RingtoetsCommonDataResources.ReferenceLine_DisplayName, referenceLineMapData.Name); + Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_Sections_DisplayName, sectionsMapData.Name); + Assert.AreEqual(GetSectionPointDisplayName(RingtoetsCommonFormsResources.FailureMechanismSections_StartPoints_DisplayName), sectionsStartPointMapData.Name); + Assert.AreEqual(GetSectionPointDisplayName(RingtoetsCommonFormsResources.FailureMechanismSections_EndPoints_DisplayName), sectionsEndPointMapData.Name); + Assert.AreEqual(RingtoetsCommonDataResources.HydraulicBoundaryConditions_DisplayName, hydraulicBoundaryDatabaseMapData.Name); + } + + private static string GetSectionPointDisplayName(string name) + { + return string.Format("{0} ({1})", + RingtoetsCommonFormsResources.FailureMechanism_Sections_DisplayName, + name); + } + + private class TestAssessmentSection : Observable, IAssessmentSection + { + public string Id { get; set; } + public string Name { get; set; } + public string Comments { get; set; } + public AssessmentSectionComposition Composition { get; private set; } + public ReferenceLine ReferenceLine { get; set; } + public FailureMechanismContribution FailureMechanismContribution { get; private set; } + public HydraulicBoundaryDatabase HydraulicBoundaryDatabase { get; set; } + + public IEnumerable GetFailureMechanisms() + { + yield break; + } + + public void ChangeComposition(AssessmentSectionComposition newComposition) + { + throw new NotImplementedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs =================================================================== diff -u -r5724d9646d808c712d3bd87ecc89d8e23426c83f -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision 5724d9646d808c712d3bd87ecc89d8e23426c83f) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/ClosingStructuresPluginTest.cs (.../ClosingStructuresPluginTest.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.Collections.Generic; using System.Linq; using Core.Common.Controls.TreeView; using Core.Common.Gui.Plugin; @@ -30,6 +31,7 @@ using Ringtoets.ClosingStructures.Forms.PropertyClasses; using Ringtoets.ClosingStructures.Forms.Views; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Forms.PresentationObjects; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -126,9 +128,24 @@ ViewInfo[] viewInfos = plugin.GetViewInfos().ToArray(); // Assert - Assert.AreEqual(2, viewInfos.Length); - Assert.IsTrue(viewInfos.Any(vi => vi.ViewType == typeof(ClosingStructuresFailureMechanismResultView))); - Assert.IsTrue(viewInfos.Any(vi => vi.ViewType == typeof(ClosingStructuresScenariosView))); + Assert.AreEqual(3, viewInfos.Length); + + PluginTestHelper.AssertViewInfoDefined( + viewInfos, + typeof(ClosingStructuresFailureMechanismContext), + typeof(ClosingStructuresFailureMechanismView)); + + PluginTestHelper.AssertViewInfoDefined( + viewInfos, + typeof(FailureMechanismSectionResultContext), + typeof(IEnumerable), + typeof(ClosingStructuresFailureMechanismResultView)); + + PluginTestHelper.AssertViewInfoDefined( + viewInfos, + typeof(ClosingStructuresScenariosContext), + typeof(CalculationGroup), + typeof(ClosingStructuresScenariosView)); } } Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj =================================================================== diff -u -r2d5e2d09b0cb1a7f48e1b0a067d332347c89d4a8 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj (.../Ringtoets.ClosingStructures.Plugin.Test.csproj) (revision 2d5e2d09b0cb1a7f48e1b0a067d332347c89d4a8) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj (.../Ringtoets.ClosingStructures.Plugin.Test.csproj) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -92,6 +92,10 @@ {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil + + {4a06df0d-5d75-4bad-a95a-a3db9b7c4ad5} + Core.Components.Gis.Forms + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} Ringtoets.Common.Data Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs =================================================================== diff -u -rb6f4e414fc874653cc6ad84b80f330b28e69b823 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision b6f4e414fc874653cc6ad84b80f330b28e69b823) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -247,7 +247,7 @@ return this; } - # region Decorated members + #region Decorated members /// /// Adds an item to the , which starts edit mode for the name of . @@ -373,6 +373,6 @@ return contextMenuBuilder.Build(); } - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsTreeNodeInfoFactory.cs =================================================================== diff -u -rd7e204007a0a9e73fdfec7e570a397d4c41a463b -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsTreeNodeInfoFactory.cs (.../RingtoetsTreeNodeInfoFactory.cs) (revision d7e204007a0a9e73fdfec7e570a397d4c41a463b) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsTreeNodeInfoFactory.cs (.../RingtoetsTreeNodeInfoFactory.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -167,7 +167,7 @@ #endregion - # region Helper methods for CreateCalculationGroupContextTreeNodeInfo + #region Helper methods for CreateCalculationGroupContextTreeNodeInfo private static bool IsNestedGroup(object parentData) { @@ -208,7 +208,7 @@ return new DroppingCalculationToNewContainer(sourceCalculationGroup, targetCalculationGroup); } - # region Nested types: DroppingCalculationInContainerStrategy and implementations + #region Nested types: DroppingCalculationInContainerStrategy and implementations /// /// Strategy pattern implementation for dealing with drag and drop of a @@ -312,8 +312,8 @@ } } - # endregion + #endregion - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs =================================================================== diff -u -rd49a06fcbf63b36885b0d8f09a01f6539bcbfd56 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision d49a06fcbf63b36885b0d8f09a01f6539bcbfd56) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -1565,7 +1565,7 @@ #endregion - # region Nested types + #region Nested types private class TestFailureMechanismContext : FailureMechanismContext { @@ -1621,6 +1621,6 @@ public void ClearOutput() {} } - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs =================================================================== diff -u -rd49a06fcbf63b36885b0d8f09a01f6539bcbfd56 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision d49a06fcbf63b36885b0d8f09a01f6539bcbfd56) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -1309,7 +1309,7 @@ #endregion - # region Nested types + #region Nested types private class TestFailureMechanismContext : FailureMechanismContext { @@ -1365,6 +1365,6 @@ public void ClearOutput() {} } - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsTreeNodeInfoFactoryTest.cs =================================================================== diff -u -rd49a06fcbf63b36885b0d8f09a01f6539bcbfd56 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsTreeNodeInfoFactoryTest.cs (.../RingtoetsTreeNodeInfoFactoryTest.cs) (revision d49a06fcbf63b36885b0d8f09a01f6539bcbfd56) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsTreeNodeInfoFactoryTest.cs (.../RingtoetsTreeNodeInfoFactoryTest.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -42,7 +42,7 @@ [TestFixture] public class RingtoetsTreeNodeInfoFactoryTest { - # region CreateCalculationGroupContextTreeNodeInfo + #region CreateCalculationGroupContextTreeNodeInfo [Test] public void CreateCalculationGroupContextTreeNodeInfo_Always_ExpectedPropertiesSet() @@ -795,7 +795,7 @@ #endregion - # region CreateFailureMechanismContextTreeNodeInfo + #region CreateFailureMechanismContextTreeNodeInfo [Test] public void CreateFailureMechanismContextTreeNodeInfo_Always_ExpectedPropertiesSet() @@ -1068,7 +1068,7 @@ } } - # endregion + #endregion #region EmptyProbabilityAssessmentOutputTreeNodeInfo @@ -1143,7 +1143,7 @@ #endregion - # region Nested types + #region Nested types private class TestCalculationGroupContext : Observable, ICalculationContext { @@ -1230,6 +1230,6 @@ Group } - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs =================================================================== diff -u -rf718135c08ce7b90cc0eaf40bfb83c9af48a1776 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision f718135c08ce7b90cc0eaf40bfb83c9af48a1776) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -214,7 +214,7 @@ return null; } - # region GrassCoverErosionInwardsFailureMechanismView ViewInfo + #region GrassCoverErosionInwardsFailureMechanismView ViewInfo private bool CloseGrassCoverErosionInwardsFailureMechanismViewForData(GrassCoverErosionInwardsFailureMechanismView view, object o) { @@ -229,7 +229,7 @@ : ReferenceEquals(viewFailureMechanism, failureMechanism); } - # endregion + #endregion #region GrassCoverErosionInwardsScenariosView ViewInfo Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs =================================================================== diff -u -r650277f75faab8d29b4a07b738f0fd2a99ac7ed3 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 650277f75faab8d29b4a07b738f0fd2a99ac7ed3) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -298,7 +298,7 @@ #region ViewInfos - # region GrassCoverErosionOutwardsFailureMechanismView ViewInfo + #region GrassCoverErosionOutwardsFailureMechanismView ViewInfo private bool CloseGrassCoverErosionOutwardsFailureMechanismViewForData(GrassCoverErosionOutwardsFailureMechanismView view, object o) { @@ -313,7 +313,7 @@ : ReferenceEquals(viewFailureMechanism, failureMechanism); } - # endregion + #endregion #region GrassCoverErosionOutwardsFailureMechanismResultView ViewInfo Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs =================================================================== diff -u -rf724e2a23cc180381b736c4da1318d87398e5758 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs (.../HeightStructuresPlugin.cs) (revision f724e2a23cc180381b736c4da1318d87398e5758) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs (.../HeightStructuresPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -238,7 +238,7 @@ #region ViewInfo - # region HeightStructuresFailureMechanismView ViewInfo + #region HeightStructuresFailureMechanismView ViewInfo private bool CloseHeightStructuresFailureMechanismViewForData(HeightStructuresFailureMechanismView view, object o) { @@ -253,7 +253,7 @@ : ReferenceEquals(viewFailureMechanism, failureMechanism); } - # endregion + #endregion #region HeightStructuresScenariosView ViewInfo Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -r650277f75faab8d29b4a07b738f0fd2a99ac7ed3 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 650277f75faab8d29b4a07b738f0fd2a99ac7ed3) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -1358,7 +1358,7 @@ .Build(); } - # endregion + #endregion #region HydraulicBoundaryDatabase TreeNodeInfo Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -r650277f75faab8d29b4a07b738f0fd2a99ac7ed3 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 650277f75faab8d29b4a07b738f0fd2a99ac7ed3) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -484,7 +484,7 @@ #endregion - # region Event handling + #region Event handling private void DataGridViewOnCellClick(object sender, DataGridViewCellEventArgs e) { @@ -576,6 +576,6 @@ return selection; } - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingScenariosView.cs =================================================================== diff -u -rcd60fad8d8f19927154d3dc36b92a923b4bbbfc9 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision cd60fad8d8f19927154d3dc36b92a923b4bbbfc9) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -180,7 +180,7 @@ dataGridViewControl.SetDataSource(dataSource); } - # region Event handling + #region Event handling private void ListBoxOnSelectedValueChanged(object sender, EventArgs e) { @@ -203,6 +203,6 @@ } } - # endregion + #endregion } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -r650277f75faab8d29b4a07b738f0fd2a99ac7ed3 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 650277f75faab8d29b4a07b738f0fd2a99ac7ed3) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -298,7 +298,7 @@ }; } - # region PipingFailureMechanismView ViewInfo + #region PipingFailureMechanismView ViewInfo private static bool ClosePipingFailureMechanismViewForData(PipingFailureMechanismView view, object o) { @@ -313,9 +313,9 @@ : ReferenceEquals(viewPipingFailureMechanism, pipingFailureMechanism); } - # endregion + #endregion - # region FailureMechanismResultsView ViewInfo + #region FailureMechanismResultsView ViewInfo private static bool CloseFailureMechanismResultViewForData(PipingFailureMechanismResultView view, object o) { @@ -336,9 +336,9 @@ return failureMechanism != null && ReferenceEquals(view.Data, failureMechanism.SectionResults); } - # endregion + #endregion - # region PipingCalculationsView ViewInfo + #region PipingCalculationsView ViewInfo private static bool ClosePipingCalculationsViewForData(PipingCalculationsView view, object o) { @@ -362,7 +362,7 @@ #endregion endregion - # region PipingScenariosView ViewInfo + #region PipingScenariosView ViewInfo private static bool ClosePipingScenariosViewForData(PipingScenariosView view, object o) { @@ -537,7 +537,7 @@ #endregion - # region Piping TreeNodeInfo + #region Piping TreeNodeInfo private ContextMenuStrip FailureMechanismEnabledContextMenuStrip(PipingFailureMechanismContext pipingFailureMechanismContext, object parentData, TreeViewControl treeViewControl) { @@ -625,9 +625,9 @@ }; } - # endregion + #endregion - # region PipingCalculationScenarioContext TreeNodeInfo + #region PipingCalculationScenarioContext TreeNodeInfo private ContextMenuStrip PipingCalculationContextContextMenuStrip(PipingCalculationScenarioContext nodeData, object parentData, TreeViewControl treeViewControl) { @@ -701,9 +701,9 @@ context.FailureMechanism.Contribution)); } - # endregion + #endregion - # region PipingCalculationGroupContext TreeNodeInfo + #region PipingCalculationGroupContext TreeNodeInfo private static object[] PipingCalculationGroupContextChildNodeObjects(PipingCalculationGroupContext nodeData) { Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs =================================================================== diff -u -rc238c8de03e71e09a71c68b6f28fb057ef8a1c4d -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs (.../StabilityPointStructuresInputContextProperties.cs) (revision c238c8de03e71e09a71c68b6f28fb057ef8a1c4d) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresInputContextProperties.cs (.../StabilityPointStructuresInputContextProperties.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -227,7 +227,7 @@ #endregion - # region Model factors and critical values + #region Model factors and critical values [DynamicVisible] public override NormalDistributionProperties ModelFactorSuperCriticalFlow Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs =================================================================== diff -u -rf718135c08ce7b90cc0eaf40bfb83c9af48a1776 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs (.../StabilityStoneCoverPlugin.cs) (revision f718135c08ce7b90cc0eaf40bfb83c9af48a1776) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs (.../StabilityStoneCoverPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -167,7 +167,7 @@ #region ViewInfos - # region StabilityStoneCoverFailureMechanismView ViewInfo + #region StabilityStoneCoverFailureMechanismView ViewInfo private bool CloseStabilityStoneCoverFailureMechanismViewForData(StabilityStoneCoverFailureMechanismView view, object o) { @@ -182,7 +182,7 @@ : ReferenceEquals(viewFailureMechanism, failureMechanism); } - # endregion + #endregion #region FailureMechanismSectionResultContext Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs =================================================================== diff -u -rf718135c08ce7b90cc0eaf40bfb83c9af48a1776 -rae5c573fb82f4b30350f63cb6f202ae99275f4ff --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision f718135c08ce7b90cc0eaf40bfb83c9af48a1776) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision ae5c573fb82f4b30350f63cb6f202ae99275f4ff) @@ -170,7 +170,7 @@ #region ViewInfos - # region WaveImpactAsphaltCoverFailureMechanismView ViewInfo + #region WaveImpactAsphaltCoverFailureMechanismView ViewInfo private bool CloseWaveImpactAsphaltCoverFailureMechanismViewForData(WaveImpactAsphaltCoverFailureMechanismView view, object o) { @@ -185,7 +185,7 @@ : ReferenceEquals(viewFailureMechanism, failureMechanism); } - # endregion + #endregion #region FailureMechanismSectionResultContext