From dd0fef1712fa3a59094e8fd4dd2f8e073904b0fc Mon Sep 17 00:00:00 2001 From: John Date: Thu, 16 Jun 2011 19:29:30 +0000 Subject: [PATCH] Table handling in the ProcessEnterKey logic --- .../Volian.Controls.Library/StepTabRibbon.cs | 47 ++++++++++++++----- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index 3a40803e..c9444c80 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -1548,7 +1548,7 @@ namespace Volian.Controls.Library bool deletedRNO = false; bool deletedNote = false; bool deletedCaution = false; - if (MyStepRTB.Text.Length < 1) //empty step text + if (!MyItemInfo.IsTable && MyStepRTB.Text.Length < 1) //empty step text { deletedEmpty = true; deletedHLS = MyItemInfo.IsHigh; @@ -1612,11 +1612,20 @@ namespace Volian.Controls.Library { if (deletedSubStep) { - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); // jump to HLS + //MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); // jump to HLS SetShortCutContextMenu("InsHLS"); // prompt for new HLS } - else if (deletedRNO || MyItemInfo.IsEquipmentList) + //else if (deletedRNO || MyItemInfo.IsEquipmentList) + // InsertSiblingBeforeOrAfter("after"); + else if (MyItemInfo.IsEquipmentList) InsertSiblingBeforeOrAfter("after"); + else if (deletedRNO) + { + if (MyItemInfo.SearchNext.IsTable) + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); + else + InsertSiblingBeforeOrAfter("after"); + } else if (MyEditItem.MyRNOEditItems != null && MyEditItem.MyRNOEditItems.Count > 0) MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlRight); // jump to RNO else @@ -1645,9 +1654,21 @@ namespace Volian.Controls.Library } else if (MyItemInfo.IsTable || MyItemInfo.IsFigure) { + ItemInfo next = MyItemInfo.SearchNext; + MyFlexGrid.Select(0, 0); // make sure we are at the first row before doing an up arrow MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); if (MyItemInfo.IsHigh) - SetShortCutContextMenu("InsHLS"); + { + if (deletedSubStep) + SetShortCutContextMenu("InsHLS"); + else if (next.IsFirstSubStep) + { + MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(next); + InsertSiblingBeforeOrAfter("before"); + } + else + SetShortCutContextMenu("InsSubStps"); + } else InsertSiblingBeforeOrAfter("after"); } @@ -1656,18 +1677,18 @@ namespace Volian.Controls.Library private void AddSubStep() { EditItem nextDownEditItem = MyEditItem.NextDownEditItem; - bool skipTable = false; - // If the step has a table, move past it before adding a substep - if (nextDownEditItem != null && nextDownEditItem.MyItemInfo.MyParent.ItemID == MyEditItem.MyID && - nextDownEditItem.MyItemInfo.IsTablePart) - { - nextDownEditItem = nextDownEditItem.NextDownEditItem; - skipTable = true; - } + //bool skipTable = false; + // //If the step has a table, move past it before adding a substep + //if (nextDownEditItem != null && nextDownEditItem.MyItemInfo.MyParent.ItemID == MyEditItem.MyID && + // nextDownEditItem.MyItemInfo.IsTablePart) + //{ + // nextDownEditItem = nextDownEditItem.NextDownEditItem; + // skipTable = true; + //} if (nextDownEditItem != null && nextDownEditItem.MyItemInfo.MyParent.ItemID == MyEditItem.MyID) { MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - if (skipTable) MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); + //if (skipTable) MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); InsertSiblingBeforeOrAfter("before"); } else