diff --git a/PROMS/Volian.Controls.Library/StepPanel.cs b/PROMS/Volian.Controls.Library/StepPanel.cs index 06d1b2a6..1b6de68f 100644 --- a/PROMS/Volian.Controls.Library/StepPanel.cs +++ b/PROMS/Volian.Controls.Library/StepPanel.cs @@ -443,6 +443,8 @@ namespace Volian.Controls.Library } set { + EditItem newFocus = null; // B2018-152 when empty step is deleted, will contain the new step element focus + bool deletingParent = false; // B2018-152 used to tell us user clicked on subtep of step element who's text was removed (special case) EditItem lastEI = _SelectedEditItem; if (value != null) value.SetActive(); // Set the active color if (lastEI == value) return; // Same - No Change @@ -455,15 +457,24 @@ namespace Volian.Controls.Library { if (lastEI.HasChildren) { + // B2018-152 Added a messagebox for when user clicks on a substep of a step element who's text was just deleted + // Also made the message for when we ask about removing a step and its substeps more descriptive + string msg1 = "Do you want to delete it and its substeps?"; + string msg2 = "Select YES to remove the empty step"; + string msg3 = "Select NO to keep the empty step which can be restored via the History tab on the Step Properties panel."; if (value != null && value.MyItemInfo.HasAncestor(lastEI.MyItemInfo)) { - shouldDelete = false; + msg1 = "This step does not have text but you had selected one of its substeps. " + msg1; + msg2 = msg2 + " including the substep you had selected. You will be placed at the next location."; + deletingParent = true; // B2018-152 this will tell us that the user selected a substep of a parent being deleted } else { - DialogResult result = FlexibleMessageBox.Show("This step does not have text but has substeps. Do you want to delete it and its substeps?", "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (result == DialogResult.No) shouldDelete = false; + msg1 = "This step does not have text but has substeps. " + msg1; + msg2 = msg2 + " and its substeps."; } + DialogResult result = FlexibleMessageBox.Show(msg1 + "\n\n" + msg2 + "\n\n" + msg3, "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (result == DialogResult.No) shouldDelete = false; } } if (shouldDelete) @@ -496,7 +507,7 @@ namespace Volian.Controls.Library } } float oldTop = lastEI.Top; - EditItem newFocus = lastEI.DeleteItem(); + newFocus = lastEI.DeleteItem(); //B2018-152 made "newFocus" available outside this IF statement if (newFocus == null) { lastEI.RefreshContent(); @@ -544,6 +555,10 @@ namespace Volian.Controls.Library lastEI.RefreshDisplay(false); } } + //B2018-152 if we are deleteing a step element that has substeps and the user click on one of those substep, + // use resulting focus position returned from lastEI.DeleteItem() instead of current "value" + if (deletingParent && newFocus != null) + value = newFocus; _SelectedEditItem = value; MyStepTabPanel.MyStepTabRibbon.MyEditItem = value;// Update StepTabRibbon.MyEditItem to match if (value != null)