Index: Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs =================================================================== diff -u -r3d088548dfdebfd5c3adbbd67075b42e134f5c03 -r6b6481cda445a35c68548bc85233456072054782 --- Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs (.../TreeNodeInfo.cs) (revision 3d088548dfdebfd5c3adbbd67075b42e134f5c03) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs (.../TreeNodeInfo.cs) (revision 6b6481cda445a35c68548bc85233456072054782) @@ -102,6 +102,12 @@ public Func CanRemove { get; set; } /// + /// Gets or sets a function for obtaining the text that is shown before the tree node is removed. + /// The object parameter represents the data of the tree node. + /// + public Func BeforeNodeRemoveText { get; set; } + + /// /// Gets or sets an action for obtaining the logic to perform after removing the tree node. /// The first object parameter represents the data of the tree node. /// The second object parameter represents the data of the parent tree node. @@ -253,6 +259,12 @@ public Action OnNodeRemoved { get; set; } /// + /// Gets or sets a function for obtaining the text that is shown before the tree node is removed. + /// The parameter represents the data of the tree node. + /// + public Func BeforeNodeRemoveText { get; set; } + + /// /// Gets or sets a function for checking whether or not the tree node can be checked. /// The parameter represents the data of the tree node. /// @@ -345,6 +357,9 @@ CanRemove = treeNodeInfo.CanRemove != null ? (tag, parentTag) => treeNodeInfo.CanRemove((TData) tag, parentTag) : (Func) null, + BeforeNodeRemoveText = treeNodeInfo.BeforeNodeRemoveText != null + ? tag => treeNodeInfo.BeforeNodeRemoveText((TData) tag) + : (Func) null, OnNodeRemoved = treeNodeInfo.OnNodeRemoved != null ? (tag, parentTag) => treeNodeInfo.OnNodeRemoved((TData) tag, parentTag) : (Action) null, Index: Core/Common/test/Core.Common.Controls.TreeView.Test/TreeNodeInfoTest.cs =================================================================== diff -u -r3d088548dfdebfd5c3adbbd67075b42e134f5c03 -r6b6481cda445a35c68548bc85233456072054782 --- Core/Common/test/Core.Common.Controls.TreeView.Test/TreeNodeInfoTest.cs (.../TreeNodeInfoTest.cs) (revision 3d088548dfdebfd5c3adbbd67075b42e134f5c03) +++ Core/Common/test/Core.Common.Controls.TreeView.Test/TreeNodeInfoTest.cs (.../TreeNodeInfoTest.cs) (revision 6b6481cda445a35c68548bc85233456072054782) @@ -47,6 +47,7 @@ Assert.IsNull(treeNodeInfo.CanRename); Assert.IsNull(treeNodeInfo.OnNodeRenamed); Assert.IsNull(treeNodeInfo.CanRemove); + Assert.IsNull(treeNodeInfo.BeforeNodeRemoveText); Assert.IsNull(treeNodeInfo.OnNodeRemoved); Assert.IsNull(treeNodeInfo.CanCheck); Assert.IsNull(treeNodeInfo.CheckedState); @@ -72,6 +73,7 @@ Func childNodeObjects = o => new object[0]; Func canRename = (o1, o2) => true; Action onNodeRenamed = (o, newName) => {}; + Func beforeNodeRemoveText = o => ""; Func canRemove = (o1, o2) => true; Action onNodeRemoved = (o1, o2) => {}; Func canCheck = o => true; @@ -94,6 +96,7 @@ treeNodeInfo.CanRename = canRename; treeNodeInfo.OnNodeRenamed = onNodeRenamed; treeNodeInfo.CanRemove = canRemove; + treeNodeInfo.BeforeNodeRemoveText = beforeNodeRemoveText; treeNodeInfo.OnNodeRemoved = onNodeRemoved; treeNodeInfo.CanCheck = canCheck; treeNodeInfo.CheckedState = isChecked; @@ -115,6 +118,7 @@ Assert.AreEqual(canRename, treeNodeInfo.CanRename); Assert.AreEqual(onNodeRenamed, treeNodeInfo.OnNodeRenamed); Assert.AreEqual(canRemove, treeNodeInfo.CanRemove); + Assert.AreEqual(beforeNodeRemoveText, treeNodeInfo.BeforeNodeRemoveText); Assert.AreEqual(onNodeRemoved, treeNodeInfo.OnNodeRemoved); Assert.AreEqual(canCheck, treeNodeInfo.CanCheck); Assert.AreEqual(isChecked, treeNodeInfo.CheckedState); @@ -143,6 +147,7 @@ Assert.IsNull(treeNodeInfo.CanRename); Assert.IsNull(treeNodeInfo.OnNodeRenamed); Assert.IsNull(treeNodeInfo.CanRemove); + Assert.IsNull(treeNodeInfo.BeforeNodeRemoveText); Assert.IsNull(treeNodeInfo.OnNodeRemoved); Assert.IsNull(treeNodeInfo.CanCheck); Assert.IsNull(treeNodeInfo.CheckedState); @@ -168,6 +173,7 @@ Func canRename = (o1, o2) => true; Action onNodeRenamed = (o, newName) => {}; Func canRemove = (o1, o2) => true; + Func beforeNodeRemoveText = o => ""; Action onNodeRemoved = (o1, o2) => {}; Func canCheck = o => true; Func isChecked = o => TreeNodeCheckedState.Checked; @@ -188,6 +194,7 @@ treeNodeInfo.CanRename = canRename; treeNodeInfo.OnNodeRenamed = onNodeRenamed; treeNodeInfo.CanRemove = canRemove; + treeNodeInfo.BeforeNodeRemoveText = beforeNodeRemoveText; treeNodeInfo.OnNodeRemoved = onNodeRemoved; treeNodeInfo.CanCheck = canCheck; treeNodeInfo.CheckedState = isChecked; @@ -209,6 +216,7 @@ Assert.AreEqual(canRename, treeNodeInfo.CanRename); Assert.AreEqual(onNodeRenamed, treeNodeInfo.OnNodeRenamed); Assert.AreEqual(canRemove, treeNodeInfo.CanRemove); + Assert.AreEqual(beforeNodeRemoveText, treeNodeInfo.BeforeNodeRemoveText); Assert.AreEqual(onNodeRemoved, treeNodeInfo.OnNodeRemoved); Assert.AreEqual(canCheck, treeNodeInfo.CanCheck); Assert.AreEqual(isChecked, treeNodeInfo.CheckedState); @@ -242,6 +250,7 @@ Assert.IsNull(treeNodeInfo.CanRename); Assert.IsNull(treeNodeInfo.OnNodeRenamed); Assert.IsNull(treeNodeInfo.CanRemove); + Assert.IsNull(treeNodeInfo.BeforeNodeRemoveText); Assert.IsNull(treeNodeInfo.OnNodeRemoved); Assert.IsNull(treeNodeInfo.CanCheck); Assert.IsNull(treeNodeInfo.CheckedState); @@ -282,6 +291,7 @@ CanRename = (o1, o2) => true, OnNodeRenamed = (o, newName) => { onNodeRenamedCounter++; }, CanRemove = (o1, o2) => true, + BeforeNodeRemoveText = o => "Confirmation message", OnNodeRemoved = (o1, o2) => { onNodeRemovedCounter++; }, CanCheck = o => true, CheckedState = o => TreeNodeCheckedState.Checked, @@ -316,6 +326,7 @@ Assert.AreEqual(1, treeNodeInfo.ChildNodeObjects(0).Length); Assert.IsTrue(treeNodeInfo.CanRename(0, 1)); Assert.IsTrue(treeNodeInfo.CanRemove(0, 1)); + Assert.AreEqual("Confirmation message", treeNodeInfo.BeforeNodeRemoveText(0)); Assert.IsTrue(treeNodeInfo.CanCheck(0)); Assert.AreEqual(TreeNodeCheckedState.Checked, treeNodeInfo.CheckedState(0)); Assert.IsTrue(treeNodeInfo.CanDrag(0, 1));