Index: Core/Common/src/Core.Common.Controls.TreeView/Core.Common.Controls.TreeView.csproj =================================================================== diff -u -rc8848af0c6f8780634dcce2013e606f090da6577 -r2750ecd900b9e34ba54bb96d233c464b82d7684c --- Core/Common/src/Core.Common.Controls.TreeView/Core.Common.Controls.TreeView.csproj (.../Core.Common.Controls.TreeView.csproj) (revision c8848af0c6f8780634dcce2013e606f090da6577) +++ Core/Common/src/Core.Common.Controls.TreeView/Core.Common.Controls.TreeView.csproj (.../Core.Common.Controls.TreeView.csproj) (revision 2750ecd900b9e34ba54bb96d233c464b82d7684c) @@ -53,7 +53,6 @@ True Resources.resx - Component Fisheye: Tag 2750ecd900b9e34ba54bb96d233c464b82d7684c refers to a dead (removed) revision in file `Core/Common/src/Core.Common.Controls.TreeView/TreeNodeExpandCollapseState.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs =================================================================== diff -u -rfbb37872d09f1ded75ce2209e8e48a6b64d8a78f -r2750ecd900b9e34ba54bb96d233c464b82d7684c --- Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs (.../TreeNodeInfo.cs) (revision fbb37872d09f1ded75ce2209e8e48a6b64d8a78f) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs (.../TreeNodeInfo.cs) (revision 2750ecd900b9e34ba54bb96d233c464b82d7684c) @@ -146,12 +146,12 @@ /// /// Gets or sets an action for obtaining the logic to perform after dropping a tree node. - /// The first parameter represents the tree node which is dragged. - /// The second parameter represents the tree node being considered as drop target. + /// The first parameter represents the tree node which was dropped. + /// The second parameter represents the former parent tree node. /// The parameter represents the type of drag operation that was performed. /// The parameter represents the drop target index which the tree node was inserted at. /// - /// When dragging a node, the function of the of the drop target should be called. + /// After dropping a node, the function of the of the drop target should be called. public Action OnDrop { get; set; } } @@ -283,12 +283,12 @@ /// /// Gets or sets an action for obtaining the logic to perform after dropping a tree node. - /// The first parameter represents the tree node which is dragged. - /// The second parameter represents the tree node being considered as drop target. + /// The first parameter represents the tree node which was dropped. + /// The second parameter represents the former parent tree node. /// The parameter represents the type of drag operation that was performed. /// The parameter represents the drop target index which the tree node was inserted at. /// - /// When dragging a node, the function of the of the drop target should be called. + /// After dropping a node, the function of the of the drop target should be called. public Action OnDrop { get; set; } /// Index: Core/Common/src/Core.Common.Controls.TreeView/TreeViewController.cs =================================================================== diff -u -r46c27a2ee2b660fc5d1228718279338aa5dfa2f5 -r2750ecd900b9e34ba54bb96d233c464b82d7684c --- Core/Common/src/Core.Common.Controls.TreeView/TreeViewController.cs (.../TreeViewController.cs) (revision 46c27a2ee2b660fc5d1228718279338aa5dfa2f5) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeViewController.cs (.../TreeViewController.cs) (revision 2750ecd900b9e34ba54bb96d233c464b82d7684c) @@ -591,9 +591,15 @@ try { + var previousParentNode = nodeDragging.Parent; + + previousParentNode.Nodes.Remove(nodeDragging); + nodeDropTarget.Nodes.Insert(dropAtLocation, nodeDragging); + nodeDragging.EnsureVisible(); + if (treeNodeInfo.OnDrop != null) { - treeNodeInfo.OnDrop(nodeDragging, nodeDropTarget, ToDragOperation(e.Effect), dropAtLocation); + treeNodeInfo.OnDrop(nodeDragging, previousParentNode, ToDragOperation(e.Effect), dropAtLocation); } } catch (Exception ex) Index: Core/Common/test/Core.Common.Controls.TreeView.Test/Core.Common.Controls.TreeView.Test.csproj =================================================================== diff -u -rb6d165f6edddc4271e94c5f6d70c12d4ba0c60eb -r2750ecd900b9e34ba54bb96d233c464b82d7684c --- Core/Common/test/Core.Common.Controls.TreeView.Test/Core.Common.Controls.TreeView.Test.csproj (.../Core.Common.Controls.TreeView.Test.csproj) (revision b6d165f6edddc4271e94c5f6d70c12d4ba0c60eb) +++ Core/Common/test/Core.Common.Controls.TreeView.Test/Core.Common.Controls.TreeView.Test.csproj (.../Core.Common.Controls.TreeView.Test.csproj) (revision 2750ecd900b9e34ba54bb96d233c464b82d7684c) @@ -61,7 +61,6 @@ - Fisheye: Tag 2750ecd900b9e34ba54bb96d233c464b82d7684c refers to a dead (removed) revision in file `Core/Common/test/Core.Common.Controls.TreeView.Test/TreeNodeExpandCollapseStateTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Plugins/src/Core.Plugins.OxyPlot/Legend/LegendTreeView.cs =================================================================== diff -u -rfbb37872d09f1ded75ce2209e8e48a6b64d8a78f -r2750ecd900b9e34ba54bb96d233c464b82d7684c --- Core/Plugins/src/Core.Plugins.OxyPlot/Legend/LegendTreeView.cs (.../LegendTreeView.cs) (revision fbb37872d09f1ded75ce2209e8e48a6b64d8a78f) +++ Core/Plugins/src/Core.Plugins.OxyPlot/Legend/LegendTreeView.cs (.../LegendTreeView.cs) (revision 2750ecd900b9e34ba54bb96d233c464b82d7684c) @@ -145,12 +145,13 @@ return sourceNode.Tag is ChartData; } - private void BaseChartOnDrop(TreeNode sourceNode, TreeNode targetNode, DragOperations operation, int position) + private void BaseChartOnDrop(TreeNode sourceNode, TreeNode previousParentNode, DragOperations operation, int position) { var draggedData = (ChartData) sourceNode.Tag; - var target = (ChartDataCollection) targetNode.Tag; + var target = (ChartDataCollection) previousParentNode.Tag; + target.List.Remove(draggedData); - target.List.Insert(target.List.Count - position, draggedData); + target.List.Insert(target.List.Count - position, draggedData); // Note: target is the same as the previous parent in this case target.NotifyObservers(); } Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r0c64d8a6c718c0aa67403a16c94dd0c10f862455 -r2750ecd900b9e34ba54bb96d233c464b82d7684c --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 0c64d8a6c718c0aa67403a16c94dd0c10f862455) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 2750ecd900b9e34ba54bb96d233c464b82d7684c) @@ -25,7 +25,6 @@ using System.Linq; using System.Windows.Forms; using Core.Common.Controls.TreeView; -using Core.Common.Gui; using Core.Common.Gui.ContextMenu; using Core.Common.Gui.Forms; using Core.Common.Gui.Forms.ProgressDialog; @@ -784,17 +783,17 @@ return GetAsIPipingCalculationItem(sourceNode.Tag) != null && NodesHaveSameParentFailureMechanism(sourceNode, targetNode); } - private void PipingCalculationGroupContextOnDrop(TreeNode sourceNode, TreeNode targetNode, DragOperations operation, int position) + private void PipingCalculationGroupContextOnDrop(TreeNode sourceNode, TreeNode previousParentNode, DragOperations operation, int position) { IPipingCalculationItem pipingCalculationItem = GetAsIPipingCalculationItem(sourceNode.Tag); - var originalOwnerContext = sourceNode.Parent.Tag as PipingCalculationGroupContext; - var target = targetNode.Tag as PipingCalculationGroupContext; + var originalOwnerContext = previousParentNode.Tag as PipingCalculationGroupContext; + var target = sourceNode.Parent.Tag as PipingCalculationGroupContext; if (pipingCalculationItem != null && originalOwnerContext != null && target != null) { - var isMoveWithinSameContainer = ReferenceEquals(targetNode.Tag, originalOwnerContext); + var isMoveWithinSameContainer = ReferenceEquals(originalOwnerContext, target); - DroppingPipingCalculationInContainerStrategy dropHandler = GetDragDropStrategy(isMoveWithinSameContainer, originalOwnerContext, target, (TreeView) targetNode.TreeView); + DroppingPipingCalculationInContainerStrategy dropHandler = GetDragDropStrategy(isMoveWithinSameContainer, originalOwnerContext, target, (TreeView) previousParentNode.TreeView); dropHandler.Execute(sourceNode.Tag, pipingCalculationItem, position); } } @@ -846,14 +845,9 @@ /// The index of the new position within the new owner's collection. public virtual void Execute(object draggedDataObject, IPipingCalculationItem pipingCalculationItem, int newPosition) { - var targetRecordedNodeState = new TreeNodeExpandCollapseState(treeView.TreeViewController.GetNodeByTag(target)); - MoveCalculationItemToNewOwner(pipingCalculationItem, newPosition); NotifyObservers(); - - TreeNode draggedNode = treeView.TreeViewController.GetNodeByTag(draggedDataObject); - UpdateTreeView(draggedNode, targetRecordedNodeState); } /// @@ -875,30 +869,6 @@ { originalOwnerContext.NotifyObservers(); } - - /// - /// Updates the where the drag & drop - /// operation took place. - /// - /// The dragged node. - /// Recorded state of the target node - /// before the drag & drop operation. - protected virtual void UpdateTreeView(TreeNode draggedNode, TreeNodeExpandCollapseState targetRecordedNodeState) - { - HandlePostDragExpandCollapseOfNewOwner(draggedNode.Parent, targetRecordedNodeState); - treeView.SelectedNode = draggedNode; - } - - private static void HandlePostDragExpandCollapseOfNewOwner(TreeNode parentOfDraggedNode, TreeNodeExpandCollapseState newOwnerRecordedNodeState) - { - newOwnerRecordedNodeState.Restore(parentOfDraggedNode); - - // Expand parent of 'draggedNode' to ensure 'draggedNode' is visible. - if (!parentOfDraggedNode.IsExpanded) - { - parentOfDraggedNode.Expand(); - } - } } /// @@ -925,8 +895,6 @@ /// private class DroppingPipingCalculationToNewContainer : DroppingPipingCalculationInContainerStrategy { - private TreeNodeExpandCollapseState recordedNodeState; - private bool renamed; /// @@ -942,23 +910,14 @@ public override void Execute(object draggedDataObject, IPipingCalculationItem pipingCalculationItem, int newPosition) { - var targetRecordedNodeState = new TreeNodeExpandCollapseState(treeView.TreeViewController.GetNodeByTag(target)); - - recordedNodeState = new TreeNodeExpandCollapseState(treeView.TreeViewController.GetNodeByTag(draggedDataObject)); EnsureDraggedNodeHasUniqueNameInNewOwner(pipingCalculationItem, target); MoveCalculationItemToNewOwner(pipingCalculationItem, newPosition); NotifyObservers(); TreeNode draggedNode = treeView.TreeViewController.GetNodeByTag(draggedDataObject); - UpdateTreeView(draggedNode, targetRecordedNodeState); - } - protected override void UpdateTreeView(TreeNode draggedNode, TreeNodeExpandCollapseState targetRecordedNodeState) - { - base.UpdateTreeView(draggedNode, targetRecordedNodeState); - recordedNodeState.Restore(draggedNode); if (renamed) { draggedNode.BeginEdit();