Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r1a390cf262c06e082830182276b6cb5da0aaef80 -rfd18531c4e5f5c1effb5d8dc2797c5cd57dd2aed --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 1a390cf262c06e082830182276b6cb5da0aaef80) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision fd18531c4e5f5c1effb5d8dc2797c5cd57dd2aed) @@ -209,14 +209,14 @@ PipingFormsResources.PipingCalculationGroup_Add_PipingCalculationGroup, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculationGroup_Tooltip, PipingFormsResources.AddFolderIcon, - (o, args) => AddCalculationGroup(failureMechanism, node) + (o, args) => AddCalculationGroup(failureMechanism, node, treeViewControl) ); var addCalculationItem = new StrictContextMenuItem( PipingFormsResources.PipingCalculationGroup_Add_PipingCalculation, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculation_Tooltip, PipingFormsResources.PipingIcon, - (s, e) => AddCalculation(failureMechanism, node) + (s, e) => AddCalculation(failureMechanism, node, treeViewControl) ); var validateAllItem = CreateValidateAllItem(failureMechanism); @@ -314,7 +314,7 @@ ActivityProgressDialogRunner.Run(Gui.MainWindow, GetAllPipingCalculationsResursively(failureMechanism).Select(calc => new PipingCalculationActivity(calc))); } - private void AddCalculationGroup(PipingFailureMechanism failureMechanism, TreeNode failureMechanismNode) + private void AddCalculationGroup(PipingFailureMechanism failureMechanism, TreeNode failureMechanismNode, TreeViewControl treeViewControl) { var calculation = new PipingCalculationGroup { @@ -323,10 +323,10 @@ failureMechanism.CalculationsGroup.Children.Add(calculation); failureMechanism.CalculationsGroup.NotifyObservers(); - SelectNewlyAddedPipingFailureMechanismItemInTreeView(failureMechanismNode); + SelectNewlyAddedPipingFailureMechanismItemInTreeView(failureMechanismNode, treeViewControl); } - private void AddCalculation(PipingFailureMechanism failureMechanism, TreeNode failureMechanismNode) + private void AddCalculation(PipingFailureMechanism failureMechanism, TreeNode failureMechanismNode, TreeViewControl treeViewControl) { var calculation = new PipingCalculation { @@ -335,10 +335,10 @@ failureMechanism.CalculationsGroup.Children.Add(calculation); failureMechanism.CalculationsGroup.NotifyObservers(); - SelectNewlyAddedPipingFailureMechanismItemInTreeView(failureMechanismNode); + SelectNewlyAddedPipingFailureMechanismItemInTreeView(failureMechanismNode, treeViewControl); } - private void SelectNewlyAddedPipingFailureMechanismItemInTreeView(TreeNode failureMechanismNode) + private void SelectNewlyAddedPipingFailureMechanismItemInTreeView(TreeNode failureMechanismNode, TreeViewControl treeViewControl) { if (!failureMechanismNode.IsExpanded) { @@ -355,7 +355,7 @@ failureMechanismsCalculationsNode.Expand(); } - failureMechanismNode.TreeView.SelectedNode = newlyAddedGroupNode; + treeViewControl.SelectNodeForData(newlyAddedGroupNode.Tag); } private static IEnumerable GetAllPipingCalculationsResursively(PipingFailureMechanism failureMechanism) @@ -552,7 +552,7 @@ group.Children.Add(newGroup); nodeData.NotifyObservers(); - SelectNewlyAddedPipingCalculationGroupContextItemInTreeView(node); + SelectNewlyAddedPipingCalculationGroupContextItemInTreeView(node, treeViewControl); }); var addCalculationItem = new StrictContextMenuItem( @@ -568,7 +568,7 @@ group.Children.Add(calculation); nodeData.NotifyObservers(); - SelectNewlyAddedPipingCalculationGroupContextItemInTreeView(node); + SelectNewlyAddedPipingCalculationGroupContextItemInTreeView(node, treeViewControl); }); var validateAllItem = CreateValidateAllItem(group); @@ -806,15 +806,15 @@ return new DroppingPipingCalculationToNewContainer(originalOwnerContext, target); } - private void SelectNewlyAddedPipingCalculationGroupContextItemInTreeView(TreeNode node) + private void SelectNewlyAddedPipingCalculationGroupContextItemInTreeView(TreeNode node, TreeViewControl treeViewControl) { // Expand parent of 'newItem' to ensure its selected state is visible. if (!node.IsExpanded) { node.Expand(); } TreeNode newlyAppendedNodeForNewItem = node.Nodes.OfType().Last(); - node.TreeView.SelectedNode = newlyAppendedNodeForNewItem; + treeViewControl.SelectNodeForData(newlyAppendedNodeForNewItem.Tag); } #region Nested Types: DroppingPipingCalculationInContainerStrategy and implementations Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r63c199ecc57c7d9344fce238426ed51bbf352552 -rfd18531c4e5f5c1effb5d8dc2797c5cd57dd2aed --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 63c199ecc57c7d9344fce238426ed51bbf352552) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision fd18531c4e5f5c1effb5d8dc2797c5cd57dd2aed) @@ -1089,8 +1089,8 @@ public void GetContextMenu_ClickOnAddGroupItem_AddGroupToCalculationGroupAndNotifyObservers() { // Setup + var tag = new object(); var gui = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); var group = new PipingCalculationGroup(); var nodeData = new PipingCalculationGroupContext(group, @@ -1103,10 +1103,12 @@ var observer = mocks.StrictMock(); observer.Expect(o => o.UpdateObserver()); - var newCalculationGroupContextNode = new TreeNode(); + var treeViewControl = mocks.StrictMock(); + treeViewControl.Expect(tvc => tvc.SelectNodeForData(tag)); + var newCalculationGroupContextNode = new TreeNode { Tag = tag }; + // Parent node of newly added item, should be expanded from collapsed state to show selected node: - var treeView = new TreeView(); var parentNode = new TreeNode(); var node = new TreeNode { @@ -1117,8 +1119,6 @@ parentNode.Nodes.Add(node); - treeView.Nodes.Add(parentNode); - gui.Expect(cmp => cmp.Get(node, info, treeViewControl)).Return(menuBuilder); mocks.ReplayAll(); @@ -1144,18 +1144,15 @@ Assert.AreEqual("Nieuwe map (1)", newlyAddedItem.Name, "An item with the same name default name already exists, therefore '(1)' needs to be appended."); - Assert.AreSame(newCalculationGroupContextNode, treeView.SelectedNode, - "The node of the newly added item should be selected."); - mocks.VerifyAll(); } [Test] public void GetContextMenu_ClickOnAddCalculationItem_AddCalculationToCalculationGroupAndNotifyObservers() { // Setup + var tag = new object(); var gui = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); var group = new PipingCalculationGroup(); var nodeData = new PipingCalculationGroupContext(group, @@ -1168,10 +1165,12 @@ var observer = mocks.StrictMock(); observer.Expect(o => o.UpdateObserver()); - var newCalculationContextNode = new TreeNode(); + var treeViewControl = mocks.StrictMock(); + treeViewControl.Expect(tvc => tvc.SelectNodeForData(tag)); + var newCalculationContextNode = new TreeNode { Tag = tag }; + // Parent node of newly added item, should be expanded from collapsed state to show selected node: - var treeView = new TreeView(); var parentNode = new TreeNode(); var node = new TreeNode { @@ -1182,8 +1181,6 @@ parentNode.Nodes.Add(node); - treeView.Nodes.Add(parentNode); - gui.Expect(cmp => cmp.Get(node, info, treeViewControl)).Return(menuBuilder); mocks.ReplayAll(); @@ -1209,9 +1206,6 @@ Assert.AreEqual("Nieuwe berekening (1)", newlyAddedItem.Name, "An item with the same name default name already exists, therefore '(1)' needs to be appended."); - Assert.AreSame(newCalculationContextNode, node.TreeView.SelectedNode, - "The node of the newly added item should be selected."); - mocks.VerifyAll(); }