B2026-074 Fixed issue where PROMS would hang when opening multiple saved Word section tabs. Also, we now save and restore to the step location of saved procedure editor sections.
This commit is contained in:
@@ -1,23 +1,15 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Configuration;
|
||||
using System.Reflection;
|
||||
using VEPROMS.CSLA.Library;
|
||||
//using Csla;
|
||||
using DevComponents;
|
||||
using DevComponents.DotNetBar;
|
||||
using DevComponents.DotNetBar.Rendering;
|
||||
using VEPROMS.Properties;
|
||||
using Volian.Controls.Library;
|
||||
using DescriptiveEnum;
|
||||
using Volian.Base.Library;
|
||||
using Volian.Print.Library;
|
||||
using JR.Utils.GUI.Forms;
|
||||
@@ -1610,7 +1602,7 @@ namespace VEPROMS
|
||||
displayRO.MyROFST = SelectedROFst;
|
||||
// B2023-021: force Load of Step Prop/RO panel RO tree by passing in
|
||||
// true to LoadTree
|
||||
if (!_WeAreExitingPROMS) displayRO.LoadTree(true);
|
||||
if (!_WeAreExitingPROMS) displayRO.LoadTree(this,true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1846,7 +1838,7 @@ namespace VEPROMS
|
||||
// should be closed or if we should exit PROMS or just Cancel to continue working
|
||||
if (tc._MyDisplayTabItems.Count < 1) // If all thabs are closed in the editor will indicate that in the database.
|
||||
{
|
||||
VEPROMS.CSLA.Library.Item.DeactivateStateDisplayTabTmp(MySessionInfo.UserID);
|
||||
Item.DeactivateStateDisplayTabTmp(MySessionInfo.UserID);
|
||||
}
|
||||
if (!_WeAreExitingPROMS && !ClosingWithError && tc.SelectedDisplayTabItem != null && tc._MyDisplayTabItems.Count > 0)
|
||||
{
|
||||
@@ -1864,7 +1856,7 @@ namespace VEPROMS
|
||||
return;
|
||||
}
|
||||
|
||||
string stk = Volian.Base.Library.vlnStackTrace.StackToString();
|
||||
string stk = vlnStackTrace.StackToString();
|
||||
|
||||
if (!stk.Contains("Exception"))
|
||||
{
|
||||
@@ -1872,33 +1864,28 @@ namespace VEPROMS
|
||||
// B2019-071 we will now close one or all of the tabs (even step editor ones)
|
||||
if (_WeAreExitingPROMS)
|
||||
{
|
||||
string DisplayTabID = "";
|
||||
int pos;
|
||||
int TabItemID;
|
||||
string DisplayTabName = "";
|
||||
int cnt = 0;
|
||||
// Deactivate previous procedure tab state by user
|
||||
VEPROMS.CSLA.Library.Item.DeactivateStateDisplayTabTmp(MySessionInfo.UserID);
|
||||
Item.DeactivateStateDisplayTabTmp(MySessionInfo.UserID);
|
||||
// Save current procedure tab state
|
||||
|
||||
//B2024-082 Remember Tabs Not opening in correct order
|
||||
int cnt = 0;
|
||||
foreach (DisplayTabItem dti in tc.MyBar.Items)
|
||||
{
|
||||
cnt++;
|
||||
DisplayTabID = dti.MyKey;
|
||||
TabItemID = dti.MyItemInfo.ItemID;
|
||||
DisplayTabName = dti.ToString();
|
||||
Item.AddDisplayTabsState(TabItemID, DisplayTabID, DisplayTabName, MySessionInfo.UserID, cnt);
|
||||
ItemInfo itminfo = dti.MyItemInfo;
|
||||
string DisplayTabID = dti.MyKey;
|
||||
string DisplayTabName = dti.ToString();
|
||||
// B2026-074 if a Word section, save the ItemID of the entire Word section
|
||||
// else if a Step Editor section, save the ItemID of the step part the user was on
|
||||
int TabItemID = itminfo.HasWordContent ? itminfo.ItemID : dti.MyStepTabPanel.MyStepTabRibbon.MyEditItem.MyItemInfo.ItemID;
|
||||
Item.AddDisplayTabsState(TabItemID, DisplayTabID, DisplayTabName, MySessionInfo.UserID, cnt);
|
||||
}
|
||||
}
|
||||
|
||||
int n = tc._MyDisplayTabItems.Count;
|
||||
|
||||
while (n-- > 0 && tc._MyDisplayTabItems.Count > 0)
|
||||
{
|
||||
|
||||
tc.CloseTabItem(tc.SelectedDisplayTabItem);
|
||||
|
||||
// B2019-071 close just the current tab and continue working
|
||||
if (!dctoe.ExitPROMS)
|
||||
{
|
||||
@@ -2543,13 +2530,13 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
// Add retrieve displaytabs state here.
|
||||
openDisplaytabstate();
|
||||
OpenDisplaytabstate();
|
||||
}
|
||||
|
||||
public void openDisplaytabstate()
|
||||
private void OpenDisplaytabstate()
|
||||
{
|
||||
// Retrieve edit tab state from database.
|
||||
DataTable DisPlayTabState = VEPROMS.CSLA.Library.Item.GetDisplayTabs(VlnSettings.UserID);
|
||||
DataTable DisPlayTabState = Item.GetDisplayTabs(VlnSettings.UserID);
|
||||
|
||||
//CSM - C2024-031 - Getting User Settings
|
||||
//and set checkboxes based on what they are set to
|
||||
@@ -2569,9 +2556,12 @@ namespace VEPROMS
|
||||
usersettings.SetUserSettings(true, result == DialogResult.Yes);
|
||||
}
|
||||
|
||||
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
// B2026-074 added flag (LoadingSavedProcTabs) to supress unnecessary event calls
|
||||
// this will help prevent PROMS from getting stuck continuously looping through the same events
|
||||
// when Word procedure tabs are restored.
|
||||
tc.LoadingSavedProcTabs = true;
|
||||
foreach (DataRow TabState in DisPlayTabState.Rows)
|
||||
{
|
||||
int _ItemID = (int)TabState["ItemID"];
|
||||
@@ -2579,7 +2569,7 @@ namespace VEPROMS
|
||||
// Open procedure in the editor.
|
||||
if (_Procedure == null) continue; //skip and continue with foreach
|
||||
OpenItem(_Procedure);
|
||||
if (tc.MyEditItem == null) continue; // skip and continue with foreach
|
||||
if (tc.MyEditItem == null) continue; // skip and continue with foreach
|
||||
// SelectedStepTabPanel needs to be set so the print buttons on the ribbon will work.
|
||||
SelectedStepTabPanel = tc.MyEditItem.MyStepPanel.MyStepTabPanel;
|
||||
|
||||
@@ -2594,6 +2584,7 @@ namespace VEPROMS
|
||||
SpellChecker.MyEditItem = tc.MyEditItem; //B2025-043 Remember Tabs is not setting the EditItem for the active window causing a PROMS crash when Spell Check
|
||||
}
|
||||
}
|
||||
tc.LoadingSavedProcTabs = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4374,7 +4365,7 @@ namespace VEPROMS
|
||||
displayRO.MyRTB = (SelectedStepTabPanel == null) ? null :
|
||||
SelectedStepTabPanel.MyStepPanel.SelectedEditItem == null ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB;
|
||||
|
||||
displayRO.LoadTree(); //B2022-026 RO Memory reduction coding (Jakes Merge)
|
||||
displayRO.LoadTree(this); //B2022-026 RO Memory reduction coding (Jakes Merge)
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -4528,7 +4519,7 @@ namespace VEPROMS
|
||||
// need this to update RO Tree after UpdateRofst (B2015-226)
|
||||
// B2022-026 RO Memory reduction coding (Jakes Merge)
|
||||
displayRO.MyROFST = SelectedROFst;
|
||||
displayRO.LoadTree();
|
||||
displayRO.LoadTree(this);
|
||||
|
||||
// resetting the MyROFSTLookup for the search & reports panels will refresh the RO trees after UpdateRofst in each of those panels (B2015-226)
|
||||
if (SelectedDVI != null)
|
||||
@@ -4603,7 +4594,7 @@ namespace VEPROMS
|
||||
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
||||
// if ROFST got updated,
|
||||
// set the Selected FST so it is in sync
|
||||
if (!_WeAreExitingPROMS && displayRO.LoadTree(true))
|
||||
if (!_WeAreExitingPROMS && displayRO.LoadTree(this,true))
|
||||
{
|
||||
SelectedROFst = displayRO.MyROFST;
|
||||
}
|
||||
@@ -4723,7 +4714,7 @@ namespace VEPROMS
|
||||
|
||||
// B2022-026 RO Memory reduction coding (Jakes Merge)
|
||||
displayRO.MyRTB = null;
|
||||
displayRO.LoadTree();
|
||||
displayRO.LoadTree(this);
|
||||
}
|
||||
|
||||
infotabTags.Visible = false;
|
||||
@@ -4810,7 +4801,7 @@ namespace VEPROMS
|
||||
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
||||
// if ROFST got updated,
|
||||
// set the Selected FST so it is in sync
|
||||
if (!_WeAreExitingPROMS && displayRO.LoadTree())
|
||||
if (!_WeAreExitingPROMS && displayRO.LoadTree(this))
|
||||
{
|
||||
SelectedROFst = displayRO.MyROFST;
|
||||
}
|
||||
@@ -4843,7 +4834,7 @@ namespace VEPROMS
|
||||
|
||||
// B2022-026 RO Memory reduction coding (Jakes Merge)
|
||||
displayRO.SetFindDocROButton(false);
|
||||
if (!_WeAreExitingPROMS) displayRO.LoadTree();
|
||||
if (!_WeAreExitingPROMS) displayRO.LoadTree(this);
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
//In View Only Mode - Step Properties should be disabled
|
||||
@@ -4864,7 +4855,7 @@ namespace VEPROMS
|
||||
displayRO.ROTypeFilter = E_ROValueType.All; // allow all RO types for Word attachments (but fix)
|
||||
|
||||
displayRO.SetFindDocROButton(true);
|
||||
displayRO.LoadTree();
|
||||
displayRO.LoadTree(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4996,7 +4987,7 @@ namespace VEPROMS
|
||||
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
||||
// if ROFST got updated,
|
||||
// set the Selected FST so it is in sync
|
||||
if (displayRO.LoadTree())
|
||||
if (displayRO.LoadTree(this))
|
||||
{
|
||||
SelectedROFst = displayRO.MyROFST;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
using System.Reflection;
|
||||
using LBWordLibrary;
|
||||
using JR.Utils.GUI.Forms;
|
||||
@@ -607,7 +602,8 @@ namespace Volian.Controls.Library
|
||||
if (_In_DSOTabPanel_Enter) return;
|
||||
//vlnStackTrace.ShowStack("DSOTabPanel_Enter {0} DocID {1} Index {2} {3}",_In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName);
|
||||
_In_DSOTabPanel_Enter = true;
|
||||
if (MyDisplayTabItem.MyItemInfo != null)
|
||||
// B2026-074 only do this if we are not restoring save procedure tabs
|
||||
if (MyDisplayTabItem.MyItemInfo != null && !_MyDisplayTabControl.LoadingSavedProcTabs)
|
||||
_MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyDisplayTabItem.MyItemInfo));
|
||||
_MyEdWord.Focus();
|
||||
_In_DSOTabPanel_Enter = false;
|
||||
|
||||
@@ -7,7 +7,6 @@ using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
@@ -622,7 +621,7 @@ namespace Volian.Controls.Library
|
||||
|
||||
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
||||
// changed to return true if the RO FST got updated
|
||||
public bool LoadTree(bool forceReload = false)
|
||||
public bool LoadTree(IWin32Window mainForm, bool forceReload = false)
|
||||
{
|
||||
bool updatedROs = false;
|
||||
|
||||
@@ -653,7 +652,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
else if (changedDocVersion && !askedAboutchangedDocVersion && !ROWorkingDraftAsk.ContainsWorkingDraft(_docVersionInfo.VersionID))
|
||||
{
|
||||
if (MessageBox.Show($"There exists a newer ROFST for this RO database that was loaded for other sets.\r\n\r\nDo you want to update this set's ROs to be consistent/use the latest loaded ROFST?", "Load ROs", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
if (MessageBox.Show(mainForm,$"There exists a newer ROFST for this RO database that was loaded for other sets.\r\n\r\nDo you want to update this set's ROs to be consistent/use the latest loaded ROFST?", "Load ROs", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
InitialProgressBarMessage = "Updating ROs";
|
||||
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
using DevComponents.DotNetBar;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using Volian.Base.Library;
|
||||
@@ -59,6 +56,9 @@ namespace Volian.Controls.Library
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
#endregion
|
||||
|
||||
// B2026-074 added flag to use when restoring saved procedure tabs
|
||||
public bool LoadingSavedProcTabs { get; set; } = false;
|
||||
|
||||
private static bool _SyncronizeEnahnced = false;
|
||||
public static bool SyncronizeEnhanced
|
||||
{
|
||||
@@ -1282,6 +1282,7 @@ namespace Volian.Controls.Library
|
||||
get { return _SyncEnhancedDocuments; }
|
||||
set { _SyncEnhancedDocuments = value; }
|
||||
}
|
||||
|
||||
public void HandleChangeId(ItemInfo myItemInfo, DisplayTabItem pg)
|
||||
{
|
||||
if (myItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds)
|
||||
|
||||
Reference in New Issue
Block a user