Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs =================================================================== diff -u -rc7dbd30a5f6b57cad128d5f5d6cd076eefc50c12 -rf03c985528c494c6591a803502d8bb6b78799373 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs (.../RiskeerPlugin.cs) (revision c7dbd30a5f6b57cad128d5f5d6cd076eefc50c12) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs (.../RiskeerPlugin.cs) (revision f03c985528c494c6591a803502d8bb6b78799373) @@ -2532,10 +2532,15 @@ .Build(); } - private static void HydraulicBoundaryDatabaseContextOnNodeRemoved(HydraulicBoundaryDatabaseContext nodeData, object parentNodeData) + private void HydraulicBoundaryDatabaseContextOnNodeRemoved(HydraulicBoundaryDatabaseContext nodeData, object parentNodeData) { - nodeData.HydraulicBoundaryData.HydraulicBoundaryDatabases.Remove(nodeData.WrappedData); - nodeData.HydraulicBoundaryData.NotifyObservers(); + var handler = new HydraulicBoundaryDatabaseRemoveHandler( + nodeData.AssessmentSection, new DuneLocationsRemoveHandler(nodeData.AssessmentSection.DuneErosion, Gui.ViewCommands)); + + IEnumerable changedObjects = handler.RemoveHydraulicBoundaryDatabase(nodeData.WrappedData); + handler.DoPostRemoveActions(); + + changedObjects.ForEachElementDo(o => o.NotifyObservers()); } private ContextMenuStrip WaterLevelCalculationsForNormTargetProbabilitiesGroupContextMenuStrip(WaterLevelCalculationsForNormTargetProbabilitiesGroupContext nodeData, object parentData, TreeViewControl treeViewControl) Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs =================================================================== diff -u -rc7dbd30a5f6b57cad128d5f5d6cd076eefc50c12 -rf03c985528c494c6591a803502d8bb6b78799373 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision c7dbd30a5f6b57cad128d5f5d6cd076eefc50c12) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision f03c985528c494c6591a803502d8bb6b78799373) @@ -26,6 +26,7 @@ using Core.Common.Controls.TreeView; using Core.Common.TestUtil; using Core.Gui; +using Core.Gui.Commands; using Core.Gui.ContextMenu; using Core.Gui.Forms.Main; using NUnit.Extensions.Forms; @@ -214,28 +215,30 @@ var hydraulicBoundaryDatabase1 = new HydraulicBoundaryDatabase(); var hydraulicBoundaryDatabase2 = new HydraulicBoundaryDatabase(); var hydraulicBoundaryDatabase3 = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryData = new HydraulicBoundaryData + + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + HydraulicBoundaryData hydraulicBoundaryData = assessmentSection.HydraulicBoundaryData; + hydraulicBoundaryData.HydraulicBoundaryDatabases.AddRange(new[] { - HydraulicBoundaryDatabases = - { - hydraulicBoundaryDatabase1, - hydraulicBoundaryDatabase2, - hydraulicBoundaryDatabase3 - } - }; + hydraulicBoundaryDatabase1, + hydraulicBoundaryDatabase2, + hydraulicBoundaryDatabase3 + }); var mockRepository = new MockRepository(); + IGui gui = StubFactory.CreateGuiStub(mockRepository); + gui.Stub(g => g.ViewCommands).Return(mockRepository.Stub()); var observer = mockRepository.StrictMock(); observer.Expect(o => o.UpdateObserver()); hydraulicBoundaryData.Attach(observer); - mockRepository.ReplayAll(); - var context = new HydraulicBoundaryDatabaseContext(hydraulicBoundaryDatabase2, hydraulicBoundaryData, - new AssessmentSection(AssessmentSectionComposition.Dike)); + var context = new HydraulicBoundaryDatabaseContext(hydraulicBoundaryDatabase2, hydraulicBoundaryData, assessmentSection); using (var plugin = new RiskeerPlugin()) { + plugin.Gui = gui; + TreeNodeInfo info = GetInfo(plugin); // Call