From bbd820532ec18061dfd8caa874c02eeda67a8235 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 10 Dec 2009 18:13:05 +0000 Subject: [PATCH] RO Editor access fix and Enter key support --- .../Volian.Controls.Library/StepTabRibbon.cs | 162 ++++++++++++++++-- .../StepTabRibbon.designer.cs | Bin 229366 -> 229356 bytes 2 files changed, 150 insertions(+), 12 deletions(-) diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index f95e21ad..4eee2aa6 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -670,7 +670,7 @@ namespace Volian.Controls.Library { string roapp = Environment.GetEnvironmentVariable("roapp"); LinkText lt = new LinkText(_MyStepRTB.MyLinkText); - string roloc = lt.MyRoUsageInfo.MyRODb.FolderPath; + string roloc = "\"" + lt.MyRoUsageInfo.MyRODb.FolderPath + "\""; System.Diagnostics.Process.Start(roapp, roloc + " " + lt.MyRoUsageInfo.ROID); } } @@ -742,7 +742,7 @@ namespace Volian.Controls.Library MessageBox.Show("Could not find associated path for ro data."); return; } - string roloc = MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath; + string roloc = "\"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath + "\""; System.Diagnostics.Process.Start(roapp, roloc); } @@ -822,8 +822,9 @@ namespace Volian.Controls.Library MyStepItem.MyStepPanel.OnTabDisplay(sender, args); } - private void btnDelStep_Click(object sender, EventArgs e) + public void btnDelStep_Click(object sender, EventArgs e) { + bool surpressMessageBox = (e == null); SectionInfo si = MyStepItem.MyItemInfo as SectionInfo; if (si != null) { @@ -851,12 +852,15 @@ namespace Volian.Controls.Library MessageBox.Show("Unknown type, cannot delete!"); return; } - string msgs = stpi.HasChildren ? "Are you sure you want to delete this step and its substeps?" : "Are you sure you want to delete this step?"; - DialogResult results = MessageBox.Show(msgs, "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (results == DialogResult.Yes) + if (!surpressMessageBox) { - MyStepItem.RemoveItem(); + string msgs = stpi.HasChildren ? "Are you sure you want to delete this step and its substeps?" : "Are you sure you want to delete this step?"; + DialogResult results = MessageBox.Show(msgs, "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (results == DialogResult.Yes) + MyStepItem.RemoveItem(); } + else + MyStepItem.RemoveItem(); } private void btnCMIns_PopupClose(object sender, EventArgs e) @@ -866,33 +870,42 @@ namespace Volian.Controls.Library public void ShortCutContextMenu(string menuName) { - bool displayMenu = true; + bool displayMenu = false; + E_AccStep? actable = 0; + StepData sd = MyItemInfo.FormatStepData; + actable = sd.StepEditData.AcTable; + if (actable == null) actable = 0; + //btnInsCaut.Enabled = (actable & E_AccStep.AddingCaution) > 0; switch (menuName) { case "InsHLS": - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsHLS); + displayMenu = true; + _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsHLS); break; case "InsRNO": + displayMenu = (actable & E_AccStep.AddingRNO) > 0; _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsRNO); break; case "InsSubStps": + displayMenu = (actable & E_AccStep.AddingSub) > 0; _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsSubStps); break; case "InsCaution": + displayMenu = (actable & E_AccStep.AddingCaution) > 0; _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsCaution); break; case "InsNote": + displayMenu = (actable & E_AccStep.AddingNote) > 0; _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsNote); break; case "InsTable": + displayMenu = (actable & E_AccStep.AddingTable) > 0; _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsTable); break; case "InsFigure": + displayMenu = (actable & E_AccStep.AddingTable) > 0; _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsFigure); break; - default: - displayMenu = false; - break; } if (displayMenu) { @@ -912,6 +925,131 @@ namespace Volian.Controls.Library //dlgFindReplace.Show(); } + private void InsertSiblingBeforeOrAfter(string b4aftr) + { + E_AccStep? actable = 0; + StepData sd = MyItemInfo.FormatStepData; + actable = sd.StepEditData.AcTable; + if (actable == null) actable = 0; + switch (b4aftr) + { + case "after": + if ((actable & E_AccStep.AddingNext) > 0) + MyStepItem.AddSiblingAfter(); + break; + case "before": + if ((actable & E_AccStep.AddingPrev) > 0) + MyStepItem.AddSiblingBefore(); + break; + } + } + + public void ProcessEnterKey() + { + bool deletedEmpty = false; + bool deletedHLS = false; + bool deletedSubStep = false; + bool deletedRNO = false; + bool deletedNote = false; + bool deletedCaution = false; + if (MyStepRTB.Text.Length < 1) //empty step text + { + deletedEmpty = true; + deletedHLS = MyItemInfo.IsHigh; + deletedSubStep = MyItemInfo.IsSubStep; + deletedRNO = MyItemInfo.IsRNO; + deletedNote = MyItemInfo.IsNote; + deletedCaution = MyItemInfo.IsCaution; + + btnDelStep_Click(MyStepRTB, null); // delete the empty step piece + } + + if (MyItemInfo.IsHigh) + { + if (!deletedHLS) + { + if (deletedSubStep) + ShortCutContextMenu("InsHLS"); + else if (MyStepItem.MyRNOStepItems != null && MyStepItem.MyRNOStepItems.Count > 0) + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlRight); // jump to RNO + else if (deletedRNO) + { + if (MyStepItem.NextDownStepItem.MyItemInfo.MyParent.Equals(MyStepItem.MyItemInfo)) + { + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); + InsertSiblingBeforeOrAfter("before"); + } + else + ShortCutContextMenu("InsSubStps"); + } + else if (!deletedHLS) + ShortCutContextMenu("InsRNO"); // create a new RNO + } + } + else if (MyItemInfo.IsRNO) + { + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlLeft); + if (MyItemInfo.IsHigh) + { + if (MyStepItem.NextDownStepItem.MyItemInfo.MyParent.Equals(MyStepItem.MyItemInfo)) + { + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); + InsertSiblingBeforeOrAfter("before"); + } + else + ShortCutContextMenu("InsSubStps"); + } + else + InsertSiblingBeforeOrAfter("after"); + } + else if (MyItemInfo.IsInRNO && MyItemInfo.IsSubStep) + { + if (deletedEmpty) + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlLeft); + InsertSiblingBeforeOrAfter("after"); + } + else if (MyItemInfo.IsSubStep) + { + if (deletedSubStep) + { + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); // jump to HLS + ShortCutContextMenu("InsHLS"); // prompt for new HLS + } + else if (deletedRNO) + InsertSiblingBeforeOrAfter("after"); + else if (MyStepItem.MyRNOStepItems != null && MyStepItem.MyRNOStepItems.Count > 0) + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlRight); // jump to RNO + else + ShortCutContextMenu("InsRNO"); // create a new RNO + } + else if (MyItemInfo.IsCaution) + { + if (deletedEmpty) + { + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); + if (deletedCaution) + ShortCutContextMenu("InsNote"); + } + else + InsertSiblingBeforeOrAfter("after"); + } + else if (MyItemInfo.IsNote) + { + if (!deletedEmpty) + InsertSiblingBeforeOrAfter("after"); + else + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); + } + else if (MyItemInfo.IsTable || MyItemInfo.IsFigure) + { + MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); + if (MyItemInfo.IsHigh) + ShortCutContextMenu("InsHLS"); + else + InsertSiblingBeforeOrAfter("after"); + } + } + } public enum E_FieldToEdit { StepText, Text, Number }; diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs index cb4bf02907f10ab50cc5975692abbe244ad226e5..decba4c6d15c38b01fcffbf2b60ed301881f972b 100644 GIT binary patch delta 248 zcmezNpZCpw-VIzF(=TW-a%|?3x+6GwK>^QX9&4}72^@wbG0j6X56lDnW-oO d@3fg+fIi}zz5vLWb_HmJoeuMkU;yV~R)_!q delta 250 zcmaF!pZD8;-VIzF(-+7v@=WHj_L@GyotbO1pVSP&$p`W|CbwBZL?-)5$xZ&SpJQ_m zN0Q*=f>f@}AGF_?fOPRqHb}IY+)&0d`9*@&bc1V*e4DEhO}MA;&|C8FJGXC^P14ZYcZ1I{lIsqY}uT$p$rS zn^)C5kbsCdOcvO@YigesOkQMj&4Dt02yel8p3QO>*v!Ga=?;vHBHJU_8KXqnc`h?< Z=ef*O69IPS^e5WPEV=4du