Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 352af15984 | |||
| 2c42933d58 | |||
| 2e68362836 | |||
| c6736db7ea | |||
| c005f03af8 | |||
| 459aabcc86 | |||
| ad33097d5e | |||
| 8d7735735e | |||
| 25bbc46925 | |||
| 5a26b0ee35 | |||
| 09a397bed2 | |||
| a33039bcae | |||
| 0ebd125266 | |||
| fd16a6b6c3 | |||
| cf19f764c7 | |||
| 88850d6c25 | |||
| b173c61575 | |||
| 3b866f0952 | |||
| 94db524a11 | |||
| f27616ce1f | |||
| 7f75af7119 | |||
| 38e42723af | |||
| f4ec60c9e0 | |||
| 01394b1978 | |||
| 9b7db08fcf | |||
| 6d7cdef223 | |||
| d9c35fe02a | |||
| 250b3fa406 | |||
| a5a3f16177 | |||
| ffa7e21c18 |
@@ -179,6 +179,7 @@
|
|||||||
<Content Include="fmtall\CPL_00all.xml" />
|
<Content Include="fmtall\CPL_00all.xml" />
|
||||||
<Content Include="fmtall\CPL_01all.xml" />
|
<Content Include="fmtall\CPL_01all.xml" />
|
||||||
<Content Include="fmtall\CPL_02all.xml" />
|
<Content Include="fmtall\CPL_02all.xml" />
|
||||||
|
<Content Include="fmtall\CPL_04all.xml" />
|
||||||
<Content Include="fmtall\CPL_03all.xml" />
|
<Content Include="fmtall\CPL_03all.xml" />
|
||||||
<Content Include="fmtall\CPSAMGDataall.xml" />
|
<Content Include="fmtall\CPSAMGDataall.xml" />
|
||||||
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1817,7 +1817,7 @@ ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete a
|
|||||||
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
||||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||||
where ii.DeleteStatus > 0
|
where ii.DeleteStatus > 0
|
||||||
update ga set ga.contentauditid = (select max(auditid) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||||
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
||||||
end
|
end
|
||||||
go
|
go
|
||||||
|
|||||||
@@ -24990,6 +24990,34 @@ IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber
|
|||||||
ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation'
|
ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Author: Matthew Schill
|
||||||
|
Create Date: 06/29/2026
|
||||||
|
Description: Added an ISNULL check when setting GridAudits.contentauditid.
|
||||||
|
Was Causing Deletion of some Grids to fail.
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
/****** Object: Trigger [tr_Contents_Delete] ******/
|
||||||
|
ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete as
|
||||||
|
begin
|
||||||
|
update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid), ActionDTS = getdate(),
|
||||||
|
UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc)
|
||||||
|
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||||
|
insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS)
|
||||||
|
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
||||||
|
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||||
|
where ii.DeleteStatus > 0
|
||||||
|
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||||
|
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
||||||
|
end
|
||||||
|
go
|
||||||
|
|
||||||
|
-- Display the status of Trigger alter
|
||||||
|
IF (@@Error = 0) PRINT 'Trigger Alteration: tr_Contents_Delete Succeeded'
|
||||||
|
ELSE PRINT 'Trigger Alteration: tr_Contents_Delete Error on Creation'
|
||||||
|
GO
|
||||||
|
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
| ADD New Code Before this Block |
|
| ADD New Code Before this Block |
|
||||||
@@ -25023,8 +25051,8 @@ BEGIN TRY -- Try Block
|
|||||||
DECLARE @RevDate varchar(255)
|
DECLARE @RevDate varchar(255)
|
||||||
DECLARE @RevDescription varchar(255)
|
DECLARE @RevDescription varchar(255)
|
||||||
|
|
||||||
set @RevDate = '05/26/2026 7:00 AM'
|
set @RevDate = '06/29/2026 7:00 AM'
|
||||||
set @RevDescription = 'Get Most Recent Revision when Duplicates'
|
set @RevDescription = 'Update to Grid Deletion Audits'
|
||||||
|
|
||||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ namespace VEPROMS
|
|||||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||||
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
||||||
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
|
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
|
||||||
|
_MyApproval.SavedSlave = ApplicabilityIndex;
|
||||||
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||||
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||||
_MyDocVersion = myDocVersion;
|
_MyDocVersion = myDocVersion;
|
||||||
@@ -292,6 +293,7 @@ namespace VEPROMS
|
|||||||
expAddProcConChk.Expanded = true;
|
expAddProcConChk.Expanded = true;
|
||||||
_initializing = true;
|
_initializing = true;
|
||||||
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
|
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
|
||||||
|
_MyApproval.SavedSlave = ApplicabilityIndex;
|
||||||
InitializePanelApprove();
|
InitializePanelApprove();
|
||||||
InitializePanelSelect();
|
InitializePanelSelect();
|
||||||
_initializing = false;
|
_initializing = false;
|
||||||
@@ -306,6 +308,7 @@ namespace VEPROMS
|
|||||||
_MyDocVersion = myProcedure.MyDocVersion;
|
_MyDocVersion = myProcedure.MyDocVersion;
|
||||||
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
|
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
|
||||||
ApplicabilityIndex = _MyDocVersion.DocVersionConfig.SelectedSlave; // B2022-033 set the child being approved or workflow so other procedure list can populate
|
ApplicabilityIndex = _MyDocVersion.DocVersionConfig.SelectedSlave; // B2022-033 set the child being approved or workflow so other procedure list can populate
|
||||||
|
_MyApproval.SavedSlave = ApplicabilityIndex;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
FlexGridAddEvents();
|
FlexGridAddEvents();
|
||||||
SetupComboBoxes();
|
SetupComboBoxes();
|
||||||
@@ -914,6 +917,11 @@ namespace VEPROMS
|
|||||||
get { return _MyProcedures; }
|
get { return _MyProcedures; }
|
||||||
//set { _MyProcedures = value; }
|
//set { _MyProcedures = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//B2026-058 - If approving multiple procedures at the same time with a multiunit set and one of the procedures is open, PROMS sometimes loses that it is set for an individual unit.
|
||||||
|
// this will save the SectedSlave in case a refresh causes it to get lost
|
||||||
|
public int SavedSlave { get; set; } = 0;
|
||||||
|
|
||||||
public ApprovalInfo(frmVEPROMS myFrmVEPROMS)
|
public ApprovalInfo(frmVEPROMS myFrmVEPROMS)
|
||||||
{
|
{
|
||||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||||
@@ -1173,6 +1181,11 @@ namespace VEPROMS
|
|||||||
string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp);
|
string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp);
|
||||||
if (!TryToDelete(summaryPDF, "Change Summary")) break;
|
if (!TryToDelete(summaryPDF, "Change Summary")) break;
|
||||||
if (!TryToDelete(pdfPath,revisionStage)) break;
|
if (!TryToDelete(pdfPath,revisionStage)) break;
|
||||||
|
if (SavedSlave > 0 && ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave < 1)
|
||||||
|
{
|
||||||
|
//B2026-058 - If approving multiple procedures at the same time with a multiunit set and one of the procedures is open, PROMS sometimes loses that it is set for an individual unit.
|
||||||
|
ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave = SavedSlave;
|
||||||
|
}
|
||||||
procsApproved.Add(ap.ProcInfo.DisplayNumber + " " + ap.ProcInfo.DisplayText);
|
procsApproved.Add(ap.ProcInfo.DisplayNumber + " " + ap.ProcInfo.DisplayText);
|
||||||
RevisionInfo ric = pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(pi.ItemID);
|
RevisionInfo ric = pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(pi.ItemID);
|
||||||
// RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID);
|
// RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID);
|
||||||
|
|||||||
@@ -246,6 +246,10 @@ namespace VEPROMS
|
|||||||
|
|
||||||
tc.MyCopyStep = myParent.tc.MyCopyStep; // copy the copystep info to the child window
|
tc.MyCopyStep = myParent.tc.MyCopyStep; // copy the copystep info to the child window
|
||||||
|
|
||||||
|
//B2026 - 048 View Only Mode freezes PROMS if last tab closed
|
||||||
|
tc.EnableDisableStepProperties -= EnableDisableStepProperties;
|
||||||
|
tc.EnableDisableStepProperties += new StepTabRibbonEvent(EnableDisableStepProperties);
|
||||||
|
|
||||||
(tv.Nodes[0] as VETreeNode).InChildWindow = true; // tells us this folder's tree nodes are in the child window
|
(tv.Nodes[0] as VETreeNode).InChildWindow = true; // tells us this folder's tree nodes are in the child window
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,6 +356,7 @@ namespace VEPROMS
|
|||||||
|
|
||||||
displayRO.TabControl = tc; // B2019-043 this was being passed in as a parameter for DisplayRO which caused issues with the Visual Studio designer
|
displayRO.TabControl = tc; // B2019-043 this was being passed in as a parameter for DisplayRO which caused issues with the Visual Studio designer
|
||||||
bottomProgBar.ValueChanged += new EventHandler(bottomProgBar_ValueChanged);
|
bottomProgBar.ValueChanged += new EventHandler(bottomProgBar_ValueChanged);
|
||||||
|
tc.EnableDisableStepProperties += new StepTabRibbonEvent(EnableDisableStepProperties);
|
||||||
|
|
||||||
// When creating an XY Plot, a System.Drawing.Graphics is needed and it requires a form. Use the main form.
|
// When creating an XY Plot, a System.Drawing.Graphics is needed and it requires a form. Use the main form.
|
||||||
if (VlnSettings.DebugMode)
|
if (VlnSettings.DebugMode)
|
||||||
@@ -964,7 +969,18 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
pnl.ApplDisplayMode = displayApplicability.ViewMode;
|
pnl.ApplDisplayMode = displayApplicability.ViewMode;
|
||||||
displayHistory.ApplDisplayMode = pnl.ApplDisplayMode;
|
displayHistory.ApplDisplayMode = pnl.ApplDisplayMode;
|
||||||
|
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
if (pnl.ApplDisplayMode > 0 && pnl.VwMode != E_ViewMode.View)
|
||||||
|
{
|
||||||
|
pnl.VwMode = E_ViewMode.View;
|
||||||
|
EnableDisableStepProperties(sender, new StepTabRibbonEventArgs(tc.SelectedDisplayTabItem.MyItemInfo, 0, pnl.VwMode));
|
||||||
|
MessageBox.Show("Changing to View Only Mode. Applicability Viewing Mode must be Master to return to Edit Mode. View Mode can be toggled off via the Ribbon->View tab.", "Changing to View Mode", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pnl.MyStepTabPanel.MyStepTabRibbon.RefreshProcedure();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tv_ViewPDF(object sender, vlnTreeViewPdfArgs args)
|
void tv_ViewPDF(object sender, vlnTreeViewPdfArgs args)
|
||||||
@@ -4867,15 +4883,31 @@ namespace VEPROMS
|
|||||||
//In View Only Mode - Step Properties should be disabled
|
//In View Only Mode - Step Properties should be disabled
|
||||||
public void EnableDisableStepProperties(object sender, StepTabRibbonEventArgs args)
|
public void EnableDisableStepProperties(object sender, StepTabRibbonEventArgs args)
|
||||||
{
|
{
|
||||||
if (args.ViewMode == E_ViewMode.View && (infoTabs.Enabled || infoTabs.SelectedTab != infotabTags))
|
//C2026 - 021 Expand Functionality of Viewing Mode
|
||||||
|
//B2026 - 048 View Only Mode freezes PROMS if last tab closed
|
||||||
|
if (args.ViewMode == E_ViewMode.View && (infotabControlPanelTags.Enabled || (infoTabs.SelectedTab != infotabTags && infoTabs.SelectedTab != infotabApplicability)))
|
||||||
|
{
|
||||||
|
if (infoTabs.SelectedTab != infotabApplicability)
|
||||||
{
|
{
|
||||||
infoTabs.Enabled = true;
|
|
||||||
infoTabs.SelectedTab = infotabTags;
|
infoTabs.SelectedTab = infotabTags;
|
||||||
infoTabs.Enabled = false;
|
|
||||||
}
|
}
|
||||||
else if (args.ViewMode != E_ViewMode.View && !infoTabs.Enabled)
|
|
||||||
|
infotabControlPanelTags.Enabled = false;
|
||||||
|
infotabControlPanelRO.Enabled = false;
|
||||||
|
infotabControlPanelTransitions.Enabled = false;
|
||||||
|
tabControlPanel1.Enabled = false;
|
||||||
|
displayApplicability.SetEnableDisableItemSelection(false);
|
||||||
|
tcpFoldoutMaint.Enabled = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (args.ViewMode != E_ViewMode.View && !infotabControlPanelTags.Enabled)
|
||||||
{
|
{
|
||||||
infoTabs.Enabled = true;
|
infotabControlPanelTags.Enabled = true;
|
||||||
|
infotabControlPanelRO.Enabled = true;
|
||||||
|
infotabControlPanelTransitions.Enabled = true;
|
||||||
|
tabControlPanel1.Enabled = true;
|
||||||
|
displayApplicability.SetEnableDisableItemSelection(true);
|
||||||
|
tcpFoldoutMaint.Enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using static System.Net.Mime.MediaTypeNames;
|
|
||||||
|
|
||||||
|
|
||||||
namespace VEPROMS.CSLA.Library
|
namespace VEPROMS.CSLA.Library
|
||||||
@@ -61,6 +60,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
#region Structs / Internal Classes
|
#region Structs / Internal Classes
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||||
public struct roHdr
|
public struct roHdr
|
||||||
{
|
{
|
||||||
public int hSize;
|
public int hSize;
|
||||||
@@ -78,6 +78,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
};
|
};
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||||
public struct rodbi
|
public struct rodbi
|
||||||
{
|
{
|
||||||
public int dbiID;
|
public int dbiID;
|
||||||
@@ -91,6 +92,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
};
|
};
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||||
public struct rogrp
|
public struct rogrp
|
||||||
{
|
{
|
||||||
public string value;
|
public string value;
|
||||||
@@ -102,6 +104,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
};
|
};
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||||
public struct rochild
|
public struct rochild
|
||||||
{
|
{
|
||||||
public int ID;
|
public int ID;
|
||||||
@@ -133,7 +136,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
private List<string> _baseAccPageKeys;
|
private List<string> _baseAccPageKeys;
|
||||||
|
|
||||||
// RofstLookup/Conversion Variables
|
// RofstLookup/Conversion Variables
|
||||||
private int _rofstID;
|
private readonly int _rofstID;
|
||||||
private DocVersionInfo _myDocVersionInfo;
|
private DocVersionInfo _myDocVersionInfo;
|
||||||
private int _selectedSlave;
|
private int _selectedSlave;
|
||||||
private string _otherChild = string.Empty;
|
private string _otherChild = string.Empty;
|
||||||
@@ -149,7 +152,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
|
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
|
||||||
private frmRofstLoadStatus _frmRofstLoadStatus = null;
|
private frmRofstLoadStatus _frmRofstLoadStatus = null;
|
||||||
private Dictionary<int, int> _dicRoCounts = null;
|
private Dictionary<int, int> _dicRoCounts = null;
|
||||||
private bool _showLoadingStatus = true;
|
private readonly bool _showLoadingStatus = true;
|
||||||
|
|
||||||
private int _curRoCnt = 0;
|
private int _curRoCnt = 0;
|
||||||
private int _dbRoCnt = 0;
|
private int _dbRoCnt = 0;
|
||||||
@@ -414,7 +417,6 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
ROFSTLookup.rochild rc = RofstDataGetChildByAccPageID(_rofstID, accPageBase);
|
ROFSTLookup.rochild rc = RofstDataGetChildByAccPageID(_rofstID, accPageBase);
|
||||||
|
|
||||||
//if (rc.ID >=0 && rc.roid.Length < 16 && Regex.IsMatch(accPageKey, @".*\.[A-Z]") && rc.children != null && rc.children.Count() > 0)
|
|
||||||
if (rc.ID >= 0 && rc.roid.Length < 16 && !string.IsNullOrEmpty(accPageExt) && rc.children != null && rc.children.Count() > 0)
|
if (rc.ID >= 0 && rc.roid.Length < 16 && !string.IsNullOrEmpty(accPageExt) && rc.children != null && rc.children.Count() > 0)
|
||||||
{
|
{
|
||||||
// Check if AccPageID/Key has a return value specific extension. Try to find the RoChild record with the specific return value type,
|
// Check if AccPageID/Key has a return value specific extension. Try to find the RoChild record with the specific return value type,
|
||||||
@@ -507,8 +509,6 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// B2023-037: Handle <=, >=, +-, -> and <- symbols. Convert to unicode for output, i.e. print and edit/view (when editing
|
// B2023-037: Handle <=, >=, +-, -> and <- symbols. Convert to unicode for output, i.e. print and edit/view (when editing
|
||||||
// step, will show as 2 characters, not unicode, unless ro inserted when code replaced link text with unicode.
|
// step, will show as 2 characters, not unicode, unless ro inserted when code replaced link text with unicode.
|
||||||
|
|
||||||
//(_MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue ||
|
|
||||||
// _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue))
|
|
||||||
bool arrows1 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
bool arrows1 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
||||||
bool arrows2 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
bool arrows2 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
||||||
|
|
||||||
@@ -681,11 +681,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
if (minutes > 0) duration = string.Format("{0} min(s) ", minutes.ToString("n0"));
|
if (minutes > 0) duration = string.Format("{0} min(s) ", minutes.ToString("n0"));
|
||||||
if (secs < 0) secs = 0.00;
|
if (secs < 0) secs = 0.00;
|
||||||
duration = duration + string.Format("{0,10:#####0.00} sec(s)", secs).Trim();
|
duration += string.Format("{0,10:#####0.00} sec(s)", secs).Trim();
|
||||||
|
|
||||||
return duration;
|
return duration;
|
||||||
|
|
||||||
//return string.Format("{0,10:#####0.00}", TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
||||||
@@ -1475,19 +1474,20 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
private ROFSTLookup.roHdr ConvertFst2Objects(byte[] ab)
|
private ROFSTLookup.roHdr ConvertFst2Objects(byte[] ab)
|
||||||
{
|
{
|
||||||
ROFSTLookup.roHdr roh = new ROFSTLookup.roHdr();
|
ROFSTLookup.roHdr roh = new ROFSTLookup.roHdr
|
||||||
|
{
|
||||||
roh.hSize = BitConverter.ToInt32(ab, 0);
|
hSize = BitConverter.ToInt32(ab, 0),
|
||||||
roh.hYear = BitConverter.ToInt16(ab, 4);
|
hYear = BitConverter.ToInt16(ab, 4),
|
||||||
roh.hMonth = ab[6];
|
hMonth = ab[6],
|
||||||
roh.hDay = ab[7];
|
hDay = ab[7],
|
||||||
roh.hcYear = BitConverter.ToInt16(ab, 8);
|
hcYear = BitConverter.ToInt16(ab, 8),
|
||||||
roh.hcMonth = ab[10];
|
hcMonth = ab[10],
|
||||||
roh.hcDay = ab[11];
|
hcDay = ab[11],
|
||||||
roh.hcHour = ab[12];
|
hcHour = ab[12],
|
||||||
roh.hcMin = ab[13];
|
hcMin = ab[13],
|
||||||
roh.hcSec = ab[14];
|
hcSec = ab[14],
|
||||||
roh.hcHund = ab[15];
|
hcHund = ab[15]
|
||||||
|
};
|
||||||
|
|
||||||
int hdrOffset = BitConverter.ToInt32(ab, 16);
|
int hdrOffset = BitConverter.ToInt32(ab, 16);
|
||||||
int dbs = BitConverter.ToInt16(ab, hdrOffset + 4);
|
int dbs = BitConverter.ToInt16(ab, hdrOffset + 4);
|
||||||
@@ -1525,10 +1525,11 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
private ROFSTLookup.rogrp LoadGroup(byte[] ab, int offset, int tableID)
|
private ROFSTLookup.rogrp LoadGroup(byte[] ab, int offset, int tableID)
|
||||||
{
|
{
|
||||||
ROFSTLookup.rogrp myGrp = new ROFSTLookup.rogrp();
|
ROFSTLookup.rogrp myGrp = new ROFSTLookup.rogrp
|
||||||
|
{
|
||||||
myGrp.ID = BitConverter.ToInt32(ab, offset);
|
ID = BitConverter.ToInt32(ab, offset),
|
||||||
myGrp.ParentID = BitConverter.ToInt32(ab, offset + 4);
|
ParentID = BitConverter.ToInt32(ab, offset + 4)
|
||||||
|
};
|
||||||
|
|
||||||
int numChildren = BitConverter.ToInt16(ab, offset + 8);
|
int numChildren = BitConverter.ToInt16(ab, offset + 8);
|
||||||
|
|
||||||
@@ -1660,7 +1661,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update Progress Bar Accordingly
|
// Update Progress Bar Accordingly
|
||||||
if (_totalRoCnt > 0) _pctComplete = _pctComplete + ((Convert.ToDouble(_dbRoCnt) / Convert.ToDouble(_totalRoCnt)) * 80.0);
|
if (_totalRoCnt > 0) _pctComplete += ((Convert.ToDouble(_dbRoCnt) / Convert.ToDouble(_totalRoCnt)) * 80.0);
|
||||||
|
|
||||||
OnProgressChanged(displayText, Convert.ToInt32(_pctComplete), 100);
|
OnProgressChanged(displayText, Convert.ToInt32(_pctComplete), 100);
|
||||||
}
|
}
|
||||||
@@ -1720,15 +1721,13 @@ namespace VEPROMS.CSLA.Library
|
|||||||
protected virtual void OnProgressChanged(string title, string displayText, int curVal = 0, int maxVal = 100)
|
protected virtual void OnProgressChanged(string title, string displayText, int curVal = 0, int maxVal = 100)
|
||||||
{
|
{
|
||||||
// If frmRofstLoadStatus is not null then call Update Progress Method
|
// If frmRofstLoadStatus is not null then call Update Progress Method
|
||||||
if (_frmRofstLoadStatus != null)
|
_frmRofstLoadStatus?.UpdateProgress(title, displayText, curVal, maxVal);
|
||||||
_frmRofstLoadStatus.UpdateProgress(title, displayText, curVal, maxVal);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void OnProgressChanged(string displayText, int curVal = 0, int maxVal = 100)
|
protected virtual void OnProgressChanged(string displayText, int curVal = 0, int maxVal = 100)
|
||||||
{
|
{
|
||||||
// If frmRofstLoadStatus is not null then call Update Progress Method
|
// If frmRofstLoadStatus is not null then call Update Progress Method
|
||||||
if (_frmRofstLoadStatus != null)
|
_frmRofstLoadStatus?.UpdateProgress(_frmRofstLoadStatus.Title, displayText, curVal, maxVal);
|
||||||
_frmRofstLoadStatus.UpdateProgress(_frmRofstLoadStatus.Title, displayText, curVal, maxVal);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -1739,19 +1738,20 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
private ROFSTLookup.roHdr ConvertToRoHdrObject(SafeDataReader dr, bool loadChildren)
|
private ROFSTLookup.roHdr ConvertToRoHdrObject(SafeDataReader dr, bool loadChildren)
|
||||||
{
|
{
|
||||||
ROFSTLookup.roHdr rh = new ROFSTLookup.roHdr();
|
ROFSTLookup.roHdr rh = new ROFSTLookup.roHdr
|
||||||
|
{
|
||||||
rh.hSize = (int)dr.GetValue("hSize");
|
hSize = (int)dr.GetValue("hSize"),
|
||||||
rh.hYear = (int)dr.GetValue("hYear");
|
hYear = (int)dr.GetValue("hYear"),
|
||||||
rh.hMonth = (byte)dr.GetValue("hMonth");
|
hMonth = (byte)dr.GetValue("hMonth"),
|
||||||
rh.hDay = (byte)dr.GetValue("hDay");
|
hDay = (byte)dr.GetValue("hDay"),
|
||||||
rh.hcYear = (int)dr.GetValue("hcYear");
|
hcYear = (int)dr.GetValue("hcYear"),
|
||||||
rh.hcMonth = (byte)dr.GetValue("hcMonth");
|
hcMonth = (byte)dr.GetValue("hcMonth"),
|
||||||
rh.hcDay = (byte)dr.GetValue("hcDay");
|
hcDay = (byte)dr.GetValue("hcDay"),
|
||||||
rh.hcHour = (byte)dr.GetValue("hcHour");
|
hcHour = (byte)dr.GetValue("hcHour"),
|
||||||
rh.hcMin = (byte)dr.GetValue("hcMin");
|
hcMin = (byte)dr.GetValue("hcMin"),
|
||||||
rh.hcSec = (byte)dr.GetValue("hcSec");
|
hcSec = (byte)dr.GetValue("hcSec"),
|
||||||
rh.hcHund = (byte)dr.GetValue("hcHund");
|
hcHund = (byte)dr.GetValue("hcHund")
|
||||||
|
};
|
||||||
|
|
||||||
if (loadChildren)
|
if (loadChildren)
|
||||||
{
|
{
|
||||||
@@ -1763,15 +1763,16 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
private ROFSTLookup.rodbi ConvertToRodbiObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
|
private ROFSTLookup.rodbi ConvertToRodbiObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
|
||||||
{
|
{
|
||||||
ROFSTLookup.rodbi rd = new ROFSTLookup.rodbi();
|
ROFSTLookup.rodbi rd = new ROFSTLookup.rodbi
|
||||||
|
{
|
||||||
rd.dbiID = (int)dr.GetValue("dbiID");
|
dbiID = (int)dr.GetValue("dbiID"),
|
||||||
rd.dbiType = (int)dr.GetValue("dbiType");
|
dbiType = (int)dr.GetValue("dbiType"),
|
||||||
rd.dbiAW = (int)dr.GetValue("dbiAW");
|
dbiAW = (int)dr.GetValue("dbiAW"),
|
||||||
rd.dbiAP = (string)dr.GetValue("dbiAP");
|
dbiAP = (string)dr.GetValue("dbiAP"),
|
||||||
rd.dbiTitle = (string)dr.GetValue("dbiTitle");
|
dbiTitle = (string)dr.GetValue("dbiTitle"),
|
||||||
rd.ID = (int)dr.GetValue("ID");
|
ID = (int)dr.GetValue("ID"),
|
||||||
rd.ParentID = (int)dr.GetValue("ParentID");
|
ParentID = (int)dr.GetValue("ParentID")
|
||||||
|
};
|
||||||
|
|
||||||
if (loadChildren || loadAllChildren)
|
if (loadChildren || loadAllChildren)
|
||||||
{
|
{
|
||||||
@@ -1783,13 +1784,14 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
private ROFSTLookup.rochild ConvertToRochildObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
|
private ROFSTLookup.rochild ConvertToRochildObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
|
||||||
{
|
{
|
||||||
ROFSTLookup.rochild rc = new ROFSTLookup.rochild();
|
ROFSTLookup.rochild rc = new ROFSTLookup.rochild
|
||||||
|
{
|
||||||
rc.ID = (int)dr.GetValue("ID");
|
ID = (int)dr.GetValue("ID"),
|
||||||
rc.ParentID = (int)dr.GetValue("ParentID");
|
ParentID = (int)dr.GetValue("ParentID"),
|
||||||
rc.type = (int)dr.GetValue("type");
|
type = (int)dr.GetValue("type"),
|
||||||
rc.title = (string)dr.GetValue("title");
|
title = (string)dr.GetValue("title"),
|
||||||
rc.roid = (string)dr.GetValue("roid");
|
roid = (string)dr.GetValue("roid")
|
||||||
|
};
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty((string)dr.GetValue("appid")))
|
if (!string.IsNullOrEmpty((string)dr.GetValue("appid")))
|
||||||
{
|
{
|
||||||
@@ -1811,11 +1813,12 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
private ROFSTLookup.RoExtension ConvertToRoExtensionObject(SafeDataReader dr)
|
private ROFSTLookup.RoExtension ConvertToRoExtensionObject(SafeDataReader dr)
|
||||||
{
|
{
|
||||||
ROFSTLookup.RoExtension re = new ROFSTLookup.RoExtension();
|
ROFSTLookup.RoExtension re = new ROFSTLookup.RoExtension
|
||||||
|
{
|
||||||
re.Offset = (int)dr.GetValue("Offset");
|
Offset = (int)dr.GetValue("Offset"),
|
||||||
re.RoidExt = (string)dr.GetValue("RoidExt");
|
RoidExt = (string)dr.GetValue("RoidExt"),
|
||||||
re.AccPageExt = (string)dr.GetValue("AccPageExt");
|
AccPageExt = (string)dr.GetValue("AccPageExt")
|
||||||
|
};
|
||||||
|
|
||||||
return re;
|
return re;
|
||||||
}
|
}
|
||||||
@@ -1875,7 +1878,6 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// Instead of returning the RoChildBase object with a single RoReturnVal object attached, just return the single Ro ReturnValue object.
|
// Instead of returning the RoChildBase object with a single RoReturnVal object attached, just return the single Ro ReturnValue object.
|
||||||
var roRetVal = child.children.First();
|
var roRetVal = child.children.First();
|
||||||
|
|
||||||
//child.title = roRetVal.title;
|
|
||||||
child.appid = roRetVal.appid;
|
child.appid = roRetVal.appid;
|
||||||
child.roid = roRetVal.roid;
|
child.roid = roRetVal.roid;
|
||||||
child.value = roRetVal.value;
|
child.value = roRetVal.value;
|
||||||
@@ -2129,41 +2131,68 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return ProcessRO(match, multiRtnVal);
|
return ProcessRO(match, multiRtnVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string ProcessMacros(string str)
|
|
||||||
{
|
|
||||||
// Takes the RO text value and sees if a macro has been used.
|
// Takes the RO text value and sees if a macro has been used.
|
||||||
// If so it will perform the macro operation on the substring in the text value
|
// If so it will perform the macro operation on the substring in the text value
|
||||||
// Note** Right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hard space
|
// Note** Right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hard space
|
||||||
|
private static string ProcessMacros(string str)
|
||||||
|
{
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(str))
|
if (string.IsNullOrEmpty(str) || str.ToUpper().IndexOf("@HSP(") < 0)
|
||||||
return str;
|
return str;
|
||||||
|
|
||||||
string rtnstr = str;
|
|
||||||
int indx;
|
|
||||||
|
|
||||||
while ((indx = rtnstr.ToUpper().IndexOf("@HSP(")) > -1)
|
string processingstr = str; //holds current string being processed
|
||||||
{
|
int indx; //current position of @HSP( in string
|
||||||
string resstr = rtnstr.Substring(0, indx);
|
int endpos = 0; //end of last parens
|
||||||
int endHsp = rtnstr.IndexOf(")", indx);
|
|
||||||
|
|
||||||
//B2026 - 002 handle if parens inside a HSP
|
StringBuilder sb = new StringBuilder();
|
||||||
int startpos = indx + 5;
|
Stack<char> endparens = new Stack<char>();
|
||||||
while (rtnstr.Substring(startpos, endHsp - startpos).Contains("("))
|
|
||||||
|
while ((indx = processingstr.ToUpper().IndexOf("@HSP(")) > -1)
|
||||||
{
|
{
|
||||||
startpos = rtnstr.IndexOf("(", startpos + 1, endHsp - startpos) + 1;
|
sb.Append(processingstr.Substring(0, indx)); // initial string before @HSP(
|
||||||
endHsp = rtnstr.IndexOf(")", endHsp + 1);
|
|
||||||
|
for (int i = indx + 5; i < processingstr.Length; i++)
|
||||||
|
{
|
||||||
|
char ch = processingstr[i];
|
||||||
|
|
||||||
|
if (ch == '(')
|
||||||
|
{
|
||||||
|
//if opening paren inside HSP add it to the stack to look for a closing parens
|
||||||
|
endparens.Push(ch);
|
||||||
|
}
|
||||||
|
else if (ch == ')' && endparens.Count > 0)
|
||||||
|
{
|
||||||
|
//if cloing parens and it matches an opening parens inside of HSP, remove a level
|
||||||
|
_ = endparens.Pop();
|
||||||
|
}
|
||||||
|
else if (ch == ')' && endparens.Count == 0)
|
||||||
|
{
|
||||||
|
//if closing parens and at same level as HSP, break out since found correct closing parens
|
||||||
|
endpos = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (i == processingstr.Length - 1)
|
||||||
|
{
|
||||||
|
//if hit the end of the string and no matching closing parens found, take to the end of the string
|
||||||
|
endpos = processingstr.Length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
string tmpstr = rtnstr.Substring(indx + 5, endHsp - indx - 5);
|
//Add the text inside the @HSP(...)
|
||||||
|
string tmpstr = processingstr.Substring(indx + 5, endpos - indx - 5);
|
||||||
// B2017-012 Don't convert space to hard spaces for XY Plots.
|
// B2017-012 Don't convert space to hard spaces for XY Plots.
|
||||||
if (!tmpstr.Contains("<<G")) tmpstr = tmpstr.Replace(" ", @"\u160?");
|
if (!tmpstr.Contains("<<G")) tmpstr = tmpstr.Replace(" ", @"\u160?");
|
||||||
|
sb.Append(tmpstr);
|
||||||
|
|
||||||
resstr = resstr + tmpstr;
|
//Set the processing string to after the ending parens found in case multiple @HSP
|
||||||
rtnstr = resstr + rtnstr.Substring(endHsp + 1);
|
processingstr = endpos + 1 >= processingstr.Length ? "" : processingstr.Substring(endpos + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rtnstr;
|
//add text after last end parens
|
||||||
|
sb.Append(processingstr);
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int StringLength(byte[] ab, int offset)
|
private int StringLength(byte[] ab, int offset)
|
||||||
@@ -2275,7 +2304,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
rc.roid = FormatRoidKey(roid).Substring(0, 12);
|
rc.roid = FormatRoidKey(roid).Substring(0, 12);
|
||||||
|
|
||||||
DocVersionConfig dvc = (_myDocVersionInfo != null) ? _myDocVersionInfo.DocVersionConfig : null;
|
DocVersionConfig dvc = _myDocVersionInfo?.DocVersionConfig;
|
||||||
if (dvc != null) dvc.SelectedSlave = this.SelectedSlave;
|
if (dvc != null) dvc.SelectedSlave = this.SelectedSlave;
|
||||||
|
|
||||||
switch (rc.roid)
|
switch (rc.roid)
|
||||||
@@ -2283,49 +2312,49 @@ namespace VEPROMS.CSLA.Library
|
|||||||
case "FFFF00000001":
|
case "FFFF00000001":
|
||||||
rc.title = "Number";
|
rc.title = "Number";
|
||||||
rc.appid = "U-NUMBER";
|
rc.appid = "U-NUMBER";
|
||||||
rc.value = (dvc != null) ? dvc.Unit_Number : null;
|
rc.value = dvc?.Unit_Number;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000002":
|
case "FFFF00000002":
|
||||||
rc.title = "Other Number";
|
rc.title = "Other Number";
|
||||||
rc.appid = "U-OTHERNUMBER";
|
rc.appid = "U-OTHERNUMBER";
|
||||||
rc.value = (dvc != null) ? dvc.Other_Unit_Number : null;
|
rc.value = dvc?.Other_Unit_Number;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000003":
|
case "FFFF00000003":
|
||||||
rc.title = "Text";
|
rc.title = "Text";
|
||||||
rc.appid = "U-TEXT";
|
rc.appid = "U-TEXT";
|
||||||
rc.value = (dvc != null) ? dvc.Unit_Text : null;
|
rc.value = dvc?.Unit_Text;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000004":
|
case "FFFF00000004":
|
||||||
rc.title = "Other Text";
|
rc.title = "Other Text";
|
||||||
rc.appid = "U-OTHERTEXT";
|
rc.appid = "U-OTHERTEXT";
|
||||||
rc.value = (dvc != null) ? dvc.Other_Unit_Text : null;
|
rc.value = dvc?.Other_Unit_Text;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000005":
|
case "FFFF00000005":
|
||||||
rc.title = "ID";
|
rc.title = "ID";
|
||||||
rc.appid = "U-ID";
|
rc.appid = "U-ID";
|
||||||
rc.value = (dvc != null) ? dvc.Unit_ID : null;
|
rc.value = dvc?.Unit_ID;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000006":
|
case "FFFF00000006":
|
||||||
rc.title = "Other ID";
|
rc.title = "Other ID";
|
||||||
rc.appid = "U-OTHERID";
|
rc.appid = "U-OTHERID";
|
||||||
rc.value = (dvc != null) ? dvc.Other_Unit_ID : null;
|
rc.value = dvc?.Other_Unit_ID;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000007":
|
case "FFFF00000007":
|
||||||
rc.title = "Name";
|
rc.title = "Name";
|
||||||
rc.appid = "U-NAME";
|
rc.appid = "U-NAME";
|
||||||
rc.value = (dvc != null) ? dvc.Unit_Name : null;
|
rc.value = dvc?.Unit_Name;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "FFFF00000008":
|
case "FFFF00000008":
|
||||||
rc.title = "Other Name";
|
rc.title = "Other Name";
|
||||||
rc.appid = "U-OTHERNAME";
|
rc.appid = "U-OTHERNAME";
|
||||||
rc.value = (dvc != null) ? dvc.Other_Unit_Name : null;
|
rc.value = dvc?.Other_Unit_Name;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4113,7 +4113,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// date). Print_ViewableAfterChangeBarDate was created to get only that user specified date, if it exists. If it does exist, we compare
|
// date). Print_ViewableAfterChangeBarDate was created to get only that user specified date, if it exists. If it does exist, we compare
|
||||||
// that with the Content datetime, otherwise we proceed as before.
|
// that with the Content datetime, otherwise we proceed as before.
|
||||||
DateTime? viewableStartingDateTime = (MyProcedure.MyConfig as ProcedureConfig).Print_ViewableStartingChangeBarDate;
|
DateTime? viewableStartingDateTime = (MyProcedure.MyConfig as ProcedureConfig).Print_ViewableStartingChangeBarDate;
|
||||||
if (viewableStartingDateTime != null && viewableStartingDateTime > MyProcedure.ChangeBarDate && (MyProcedure.MyConfig as ProcedureConfig).SelectedSlave == 0)
|
// B2026-060 & B2026-061 removed the check of SelectedSlave (aka the selected child) from the IF statement,
|
||||||
|
// This was causing some step to print with change bars when there should not have been - because of the use of
|
||||||
|
// the Show Change Bars After date. The logic we need is built into the get of ChangeBarDate and Print_ViewableStartingChangeBarDate.
|
||||||
|
if (viewableStartingDateTime != null && viewableStartingDateTime > MyProcedure.ChangeBarDate)
|
||||||
return (MyContent.DTS > viewableStartingDateTime);
|
return (MyContent.DTS > viewableStartingDateTime);
|
||||||
return (MyContent.DTS > MyProcedure.ChangeBarDate);
|
return (MyContent.DTS > MyProcedure.ChangeBarDate);
|
||||||
}
|
}
|
||||||
@@ -8123,6 +8126,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
set { _ChangeBarDate = value; }
|
set { _ChangeBarDate = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
public void ResetChangeBar() => _ChangeBarDate = null;
|
||||||
|
|
||||||
public Dictionary<int, ItemInfo> MyLookup = null;
|
public Dictionary<int, ItemInfo> MyLookup = null;
|
||||||
public override void SetupTags()
|
public override void SetupTags()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ namespace Volian.Controls.Library
|
|||||||
names.Add(dcfg.Unit_Name);
|
names.Add(dcfg.Unit_Name);
|
||||||
}
|
}
|
||||||
dcfg.SelectedSlave = 0;
|
dcfg.SelectedSlave = 0;
|
||||||
// string[] names = dcfg.Unit_Name.Split(',');
|
|
||||||
int apple = -1;
|
int apple = -1;
|
||||||
if(_MyDisplayTabItem.MyStepTabPanel != null)
|
if(_MyDisplayTabItem.MyStepTabPanel != null)
|
||||||
apple = _MyDisplayTabItem.MyStepTabPanel.MyStepPanel.ApplDisplayMode;
|
apple = _MyDisplayTabItem.MyStepTabPanel.MyStepPanel.ApplDisplayMode;
|
||||||
@@ -55,7 +54,7 @@ namespace Volian.Controls.Library
|
|||||||
foreach (string name in names)
|
foreach (string name in names)
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
AddViewMode(name.Trim(), i.ToString(), apple == i);
|
AddViewMode($"{name.Trim()} (View Only)", i.ToString(), apple == i);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddItemMode("All", "-1", ref gpSubItem);
|
AddItemMode("All", "-1", ref gpSubItem);
|
||||||
@@ -96,9 +95,6 @@ namespace Volian.Controls.Library
|
|||||||
DevComponents.DotNetBar.Controls.GroupPanel gpSubItem;
|
DevComponents.DotNetBar.Controls.GroupPanel gpSubItem;
|
||||||
gpSubItem = new DevComponents.DotNetBar.Controls.GroupPanel
|
gpSubItem = new DevComponents.DotNetBar.Controls.GroupPanel
|
||||||
{
|
{
|
||||||
//
|
|
||||||
// gpSubItem
|
|
||||||
//
|
|
||||||
AutoSize = true,
|
AutoSize = true,
|
||||||
AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink,
|
AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink,
|
||||||
CanvasColor = System.Drawing.SystemColors.Control,
|
CanvasColor = System.Drawing.SystemColors.Control,
|
||||||
@@ -130,41 +126,10 @@ namespace Volian.Controls.Library
|
|||||||
set { _MyApplicability = value; }
|
set { _MyApplicability = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
//private ProcedureInfo _MyProcedureInfo;
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
//public ProcedureInfo MyProcedureInfo
|
public bool ShowItemSelection = true;
|
||||||
//{
|
public void SetEnableDisableItemSelection(bool value) => gpItem.Enabled = ShowItemSelection = value;
|
||||||
//get { return _MyProcedureInfo; }
|
|
||||||
//set
|
|
||||||
//{
|
|
||||||
// _MyProcedureInfo = value;
|
|
||||||
// if (_MyProcedureInfo != null && _MyProcedureInfo.IsProcedure)
|
|
||||||
// {
|
|
||||||
// DocVersionConfig cfg = new DocVersionConfig(_MyProcedureInfo.MyDocVersion);
|
|
||||||
// if (cfg.Unit_Name == string.Empty)
|
|
||||||
// this.Visible = false;
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// string[] names = cfg.Unit_Name.Split(',');
|
|
||||||
// gpMode.Controls.Clear();
|
|
||||||
// gpItem.Controls.Clear();
|
|
||||||
// MyCheckBoxes.Clear();
|
|
||||||
// AddViewMode("Master", "-1", true);
|
|
||||||
// int i = 0;
|
|
||||||
// foreach (string name in names)
|
|
||||||
// {
|
|
||||||
// AddViewMode(name.Trim(), (++i).ToString());
|
|
||||||
// }
|
|
||||||
// AddItemMode("All", "-1");
|
|
||||||
// i = 0;
|
|
||||||
// foreach (string name in names)
|
|
||||||
// AddItemMode(name.Trim(), (++i).ToString());
|
|
||||||
// AddItemMode("None", "0");
|
|
||||||
// //if(!this.Visible)
|
|
||||||
// // this.Visible = true;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//}
|
|
||||||
private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem)
|
private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem)
|
||||||
{
|
{
|
||||||
CheckBox cb = new CheckBox();
|
CheckBox cb = new CheckBox();
|
||||||
@@ -251,18 +216,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//IItemConfig cfg = MyItemInfo.MyConfig as IItemConfig;
|
|
||||||
//cfg.MasterSlave_Applicability.SetFlags(MyApplicability);
|
|
||||||
//Content c = Content.Get(MyItemInfo.MyContent.ContentID);
|
|
||||||
//c.Save();
|
|
||||||
//foreach (TransitionInfo ti in MyItemInfo.ItemTransitions_ToID)
|
|
||||||
//{
|
|
||||||
// if (!ti.MyItemToID.IsApplicable(MyApplicability))
|
|
||||||
// {
|
|
||||||
// MessageBox.Show("you can't do this");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
List<InvalidTransition> invalidTrans = WillTransitionsBeValidCommand.Execute(MyItemInfo.ItemID, MyApplicability);
|
List<InvalidTransition> invalidTrans = WillTransitionsBeValidCommand.Execute(MyItemInfo.ItemID, MyApplicability);
|
||||||
// B2021-149: for Procedure level PC/PC, continue processing if all 'invalid' transitions are internal (query used
|
// B2021-149: for Procedure level PC/PC, continue processing if all 'invalid' transitions are internal (query used
|
||||||
// return internal and external for the procedure level)
|
// return internal and external for the procedure level)
|
||||||
@@ -307,20 +260,6 @@ namespace Volian.Controls.Library
|
|||||||
// C2021 - 027: Procedure level PC/PC - checkbox for applicability changed, fix ribbon's menus
|
// C2021 - 027: Procedure level PC/PC - checkbox for applicability changed, fix ribbon's menus
|
||||||
if (MyItemInfo.IsProcedure) _MyDisplayTabItem.MyStepTabPanel.MyStepTabRibbon.SetParentChildCreatePDFButton(MyItemInfo.MyDocVersion.UnitNames, MyItemInfo);
|
if (MyItemInfo.IsProcedure) _MyDisplayTabItem.MyStepTabPanel.MyStepTabRibbon.SetParentChildCreatePDFButton(MyItemInfo.MyDocVersion.UnitNames, MyItemInfo);
|
||||||
|
|
||||||
//using (Content cnt = Content.Get(MyItemInfo.MyContent.ContentID))
|
|
||||||
//{
|
|
||||||
// cnt.DTS = DateTime.Now;
|
|
||||||
// cnt.UserID = Volian.Base.Library.VlnSettings.UserID;
|
|
||||||
// //cnt.Save();
|
|
||||||
//}
|
|
||||||
|
|
||||||
//using (Step s = Step.Get(MyItemInfo.ItemID))
|
|
||||||
//{
|
|
||||||
// IItemConfig cfg = new StepConfig(s);
|
|
||||||
// cfg.MasterSlave_Applicability = new Volian.Base.Library.BigNum(MyApplicability);
|
|
||||||
// s.MyContent.Config = cfg.ToString();
|
|
||||||
// s.Save();
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
private void BtnApplicabilitychg_Click(object sender, System.EventArgs e)
|
private void BtnApplicabilitychg_Click(object sender, System.EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -550,7 +489,7 @@ namespace Volian.Controls.Library
|
|||||||
void DisplayApplicability_VisibleChanged(object sender, EventArgs e)
|
void DisplayApplicability_VisibleChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
MyItemInfo = MyItemInfo;
|
MyItemInfo = MyItemInfo;
|
||||||
gpItem.Enabled = UserInfo.CanEdit(MyUserInfo,(MyItemInfo == null) ? null : MyItemInfo.MyDocVersion); //Can Change Applicability
|
gpItem.Enabled = ShowItemSelection && UserInfo.CanEdit(MyUserInfo,(MyItemInfo == null) ? null : MyItemInfo.MyDocVersion); //Can Change Applicability
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,12 @@ using DevComponents.DotNetBar;
|
|||||||
using JR.Utils.GUI.Forms;
|
using JR.Utils.GUI.Forms;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using VEPROMS.CSLA.Library;
|
using VEPROMS.CSLA.Library;
|
||||||
using Volian.Base.Library;
|
using Volian.Base.Library;
|
||||||
@@ -92,6 +91,10 @@ namespace Volian.Controls.Library
|
|||||||
//This flag will be set when the docversion gets updated to let it know that the full tree needs a refresh
|
//This flag will be set when the docversion gets updated to let it know that the full tree needs a refresh
|
||||||
private bool changedDocVersion = false;
|
private bool changedDocVersion = false;
|
||||||
|
|
||||||
|
//B2026-057 PROMS Crash when Closing Tabs
|
||||||
|
// this flag will prevent multiple asking in a row if should updste ROs
|
||||||
|
private static bool askedAboutchangedDocVersion = false;
|
||||||
|
|
||||||
public ROFstInfo MyROFST
|
public ROFstInfo MyROFST
|
||||||
{
|
{
|
||||||
get { return _myROFST; }
|
get { return _myROFST; }
|
||||||
@@ -135,6 +138,7 @@ namespace Volian.Controls.Library
|
|||||||
if (_docVersionInfo?.VersionID != value?.VersionID)
|
if (_docVersionInfo?.VersionID != value?.VersionID)
|
||||||
{
|
{
|
||||||
changedDocVersion = true;
|
changedDocVersion = true;
|
||||||
|
askedAboutchangedDocVersion = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_docVersionInfo = value;
|
_docVersionInfo = value;
|
||||||
@@ -648,9 +652,10 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
//do nothing - is still checked out
|
//do nothing - is still checked out
|
||||||
}
|
}
|
||||||
else if (changedDocVersion && 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)
|
else if (changedDocVersion && !askedAboutchangedDocVersion)
|
||||||
|
{
|
||||||
|
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)
|
||||||
{
|
{
|
||||||
|
|
||||||
InitialProgressBarMessage = "Updating ROs";
|
InitialProgressBarMessage = "Updating ROs";
|
||||||
|
|
||||||
ROFstInfo roFstInfo = ROFstInfo.Get(fstid);
|
ROFstInfo roFstInfo = ROFstInfo.Get(fstid);
|
||||||
@@ -664,6 +669,14 @@ namespace Volian.Controls.Library
|
|||||||
MyROFST = roFstInfo;
|
MyROFST = roFstInfo;
|
||||||
|
|
||||||
updatedROs = true;
|
updatedROs = true;
|
||||||
|
|
||||||
|
askedAboutchangedDocVersion = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
askedAboutchangedDocVersion = true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ using System.Linq;
|
|||||||
|
|
||||||
namespace Volian.Controls.Library
|
namespace Volian.Controls.Library
|
||||||
{
|
{
|
||||||
|
#pragma warning disable IDE1006 // Naming Styles
|
||||||
|
#pragma warning disable IDE0044 // Add readonly modifier
|
||||||
public partial class DisplaySearch : UserControl
|
public partial class DisplaySearch : UserControl
|
||||||
{
|
{
|
||||||
#region Public Events/Handlers
|
#region Public Events/Handlers
|
||||||
@@ -24,14 +26,12 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
private void OnPrintRequest(DisplaySearchEventArgs args)
|
private void OnPrintRequest(DisplaySearchEventArgs args)
|
||||||
{
|
{
|
||||||
if (PrintRequest != null)
|
PrintRequest?.Invoke(this, args);
|
||||||
PrintRequest(this, args);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSearchComplete(DisplaySearchEventArgs args)
|
private void OnSearchComplete(DisplaySearchEventArgs args)
|
||||||
{
|
{
|
||||||
if (SearchComplete != null)
|
SearchComplete?.Invoke(this, args);
|
||||||
SearchComplete(this, args);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -218,8 +218,10 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (_TmrRefresh == null)
|
if (_TmrRefresh == null)
|
||||||
{
|
{
|
||||||
_TmrRefresh = new Timer();
|
_TmrRefresh = new Timer
|
||||||
_TmrRefresh.Interval = 1000;
|
{
|
||||||
|
Interval = 1000
|
||||||
|
};
|
||||||
_TmrRefresh.Tick += _TmrRefresh_Tick;
|
_TmrRefresh.Tick += _TmrRefresh_Tick;
|
||||||
}
|
}
|
||||||
return _TmrRefresh;
|
return _TmrRefresh;
|
||||||
@@ -324,7 +326,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2])
|
if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2])
|
||||||
{ // RO Search
|
{ // RO Search
|
||||||
ROFSTLookup.rochild[] chld = null;
|
|
||||||
ROFSTLookup.rochild ch;
|
ROFSTLookup.rochild ch;
|
||||||
if (cmboTreeROs.SelectedNode != null)
|
if (cmboTreeROs.SelectedNode != null)
|
||||||
{
|
{
|
||||||
@@ -336,18 +337,16 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi)
|
if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi db)
|
||||||
{
|
{
|
||||||
ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)cmboTreeROs.SelectedNode.Tag;
|
return $"{_MyRODbID.ToString()}:{string.Format("{0}", db.dbiID.ToString("X4"))}";
|
||||||
return _MyRODbID.ToString() + ":" + string.Format("{0}", db.dbiID.ToString("X4"));
|
|
||||||
}
|
}
|
||||||
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild)
|
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild roch)
|
||||||
{
|
{
|
||||||
ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
ROFSTLookup.rochild[] chld = roch.children;
|
||||||
chld = ch.children;
|
|
||||||
// build a list of ROs to search
|
// build a list of ROs to search
|
||||||
// B2022-118: remove the ending comma otherwise query will fail
|
// B2022-118: remove the ending comma otherwise query will fail
|
||||||
string strRtnStr = _MyRODbID.ToString() + ":" + GetROsToSearch(chld);
|
string strRtnStr = $"{_MyRODbID.ToString()}:{GetROsToSearch(chld)}";
|
||||||
if (strRtnStr.EndsWith(","))
|
if (strRtnStr.EndsWith(","))
|
||||||
strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1);
|
strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1);
|
||||||
return strRtnStr;
|
return strRtnStr;
|
||||||
@@ -391,7 +390,6 @@ namespace Volian.Controls.Library
|
|||||||
cmbResultsStyle.Enabled = false;
|
cmbResultsStyle.Enabled = false;
|
||||||
tabSearchTypes.SelectedTabChanged += new TabStrip.SelectedTabChangedEventHandler(tabSearchTypes_SelectedTabChanged);
|
tabSearchTypes.SelectedTabChanged += new TabStrip.SelectedTabChangedEventHandler(tabSearchTypes_SelectedTabChanged);
|
||||||
// Don't do this here. If you do then the /DB parameter has not yet been set, which will cause the database menu to be displayed
|
// Don't do this here. If you do then the /DB parameter has not yet been set, which will cause the database menu to be displayed
|
||||||
//SetupContextMenu(); // so that the symbol list is available without selecting a procedure set or procedure
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -447,20 +445,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
btnSearch.Enabled = (cbxTranCategory.Items.Count > 0); // B2017-038 disable search button if no format selected
|
btnSearch.Enabled = (cbxTranCategory.Items.Count > 0); // B2017-038 disable search button if no format selected
|
||||||
//enable-disable doc version nodes based on version type if selected
|
//enable-disable doc version nodes based on version type if selected
|
||||||
if (cbxTranVersion.SelectedIndex > -1)
|
|
||||||
{
|
|
||||||
if (dicExpandedFolderNodes.Count > 0)
|
|
||||||
{
|
|
||||||
foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
|
|
||||||
{
|
|
||||||
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
|
|
||||||
if (cbxTranVersion.Tag.ToString().Contains(dvi.VersionID.ToString()))
|
|
||||||
n.Enabled = true;
|
|
||||||
else
|
|
||||||
n.Enabled = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//setup transition format versions
|
//setup transition format versions
|
||||||
this.Cursor = Cursors.WaitCursor;
|
this.Cursor = Cursors.WaitCursor;
|
||||||
if (myFormatVersionList == null)
|
if (myFormatVersionList == null)
|
||||||
@@ -468,15 +452,22 @@ namespace Volian.Controls.Library
|
|||||||
this.Refresh();
|
this.Refresh();
|
||||||
myFormatVersionList = FormatVersionList.GetFormatVersions();
|
myFormatVersionList = FormatVersionList.GetFormatVersions();
|
||||||
cbxTranVersion.DisplayMember = "Title";
|
cbxTranVersion.DisplayMember = "Title";
|
||||||
int lastLastFormatID = 0;
|
|
||||||
foreach (FormatVersion fv in myFormatVersionList)
|
List<FormatVersion> fvlst = myFormatVersionList.GroupBy(x => x.FormatID).Select(group => new
|
||||||
{
|
FormatVersion(title: group.Max(x => x.Title),
|
||||||
if (fv.FormatID != lastLastFormatID)
|
formatID: group.Key,
|
||||||
|
versionID: group.Max(x => x.VersionID)
|
||||||
|
)).OrderBy(y => y.Title).ToList();
|
||||||
|
|
||||||
|
//B2026-055 – Transition Search Improvements
|
||||||
|
//Added an All option to allow resetting of the enabling/disabling tree options
|
||||||
|
cbxTranVersion.Items.Add(new FormatVersion("All", -1, -1));
|
||||||
|
|
||||||
|
foreach (FormatVersion fv in fvlst)
|
||||||
{
|
{
|
||||||
cbxTranVersion.Items.Add(fv);
|
cbxTranVersion.Items.Add(fv);
|
||||||
lastLastFormatID = fv.FormatID;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||||
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||||
cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged);
|
cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged);
|
||||||
@@ -501,32 +492,6 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
public void cbxTranFormat_SelectedIndexChanged(object sender, EventArgs e)
|
public void cbxTranFormat_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
#region 1st cut
|
|
||||||
//if (cbxTranFormat.SelectedItem.ToString() == "All")
|
|
||||||
//{
|
|
||||||
// cbxTranCategory.Items.Clear();
|
|
||||||
// cbxTranCategory.Items.Add("All");
|
|
||||||
// cbxTranCategory.Items.Add("Internal");
|
|
||||||
// cbxTranCategory.Items.Add("External");
|
|
||||||
// cbxTranCategory.Items.Add("Outside");
|
|
||||||
// cbxTranCategory.SelectedIndex = 0;
|
|
||||||
//}
|
|
||||||
//else if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
|
|
||||||
//{
|
|
||||||
// cbxTranCategory.Items.Clear();
|
|
||||||
// cbxTranCategory.Items.Add("All");
|
|
||||||
// cbxTranCategory.Items.Add("External");
|
|
||||||
// cbxTranCategory.Items.Add("Outside");
|
|
||||||
// cbxTranCategory.SelectedIndex = 0;
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// cbxTranCategory.Items.Clear();
|
|
||||||
// cbxTranCategory.Items.Add("Internal");
|
|
||||||
// cbxTranCategory.SelectedIndex = 0;
|
|
||||||
//}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region 2nd cut
|
#region 2nd cut
|
||||||
if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
|
if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
|
||||||
{
|
{
|
||||||
@@ -556,41 +521,21 @@ namespace Volian.Controls.Library
|
|||||||
string versionList = string.Empty;
|
string versionList = string.Empty;
|
||||||
string sep = string.Empty;
|
string sep = string.Empty;
|
||||||
FormatVersion sfv = cbxTranVersion.SelectedItem as FormatVersion;
|
FormatVersion sfv = cbxTranVersion.SelectedItem as FormatVersion;
|
||||||
foreach (FormatVersion fv in myFormatVersionList)
|
|
||||||
{
|
versionList = string.Join(",", myFormatVersionList.Where(x => x.FormatID == sfv?.FormatID).Select(y => y.VersionID));
|
||||||
if (fv.FormatID == sfv.FormatID)
|
|
||||||
{
|
|
||||||
versionList += sep + fv.VersionID;
|
|
||||||
sep = ",";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cbxTranVersion.Tag = versionList;
|
cbxTranVersion.Tag = versionList;
|
||||||
cbxTranFormatFillIn(versionList);
|
cbxTranFormatFillIn(versionList);
|
||||||
if (dicExpandedFolderNodes.Count > 0)
|
|
||||||
{
|
|
||||||
foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
|
|
||||||
{
|
|
||||||
FolderInfo fi = (FolderInfo)n.Tag;
|
|
||||||
// if this folder has a docversion, use its id:
|
|
||||||
string svid = null;
|
|
||||||
if (fi.FolderDocVersionCount > 0)
|
|
||||||
svid = fi.FolderDocVersions[0].VersionID.ToString();
|
|
||||||
if (cbxTranVersion.Tag.ToString().Contains(svid))
|
|
||||||
n.Enabled = true;
|
|
||||||
else
|
|
||||||
n.Enabled = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<DevComponents.AdvTree.Node> uncheckNodes = new List<Node>();
|
List<DevComponents.AdvTree.Node> uncheckNodes = new List<DevComponents.AdvTree.Node>();
|
||||||
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
|
||||||
{
|
{
|
||||||
FolderInfo fi = (FolderInfo)n.Tag; // this was crashing in old version of code
|
FolderInfo fi = n.Tag as FolderInfo; // this was crashing in old version of code
|
||||||
// if this folder has a docversion, use its id:
|
// if this folder has a docversion, use its id:
|
||||||
string svid = null;
|
string svid = null;
|
||||||
if (fi.FolderDocVersionCount > 0)
|
if (fi?.FolderDocVersionCount > 0)
|
||||||
svid = fi.FolderDocVersions[0].VersionID.ToString();
|
svid = fi.FolderDocVersions[0].VersionID.ToString();
|
||||||
if (svid != null && !versionList.Contains(svid))
|
if (svid != null && !string.IsNullOrEmpty(versionList) && !versionList.Split(',').Contains(svid))
|
||||||
uncheckNodes.Add(n);
|
uncheckNodes.Add(n);
|
||||||
else
|
else
|
||||||
n.Enabled = true;
|
n.Enabled = true;
|
||||||
@@ -616,13 +561,17 @@ namespace Volian.Controls.Library
|
|||||||
dicSelectedFolderNodes.Clear();
|
dicSelectedFolderNodes.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//B2026-055 – Transition Search Improvements
|
||||||
|
//Update Enabling/Disabling of Tree Elements
|
||||||
|
TraverseTree(advTreeProcSets.Nodes[0], cbxTranVersion.Tag?.ToString().Split(','));
|
||||||
|
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
// C2020-033: Update the search panel for Incoming transitions. This gets called from the tree view & the ribbon
|
// C2020-033: Update the search panel for Incoming transitions. This gets called from the tree view & the ribbon
|
||||||
public void UpdateSearchIncTransResults()
|
public void UpdateSearchIncTransResults()
|
||||||
{
|
{
|
||||||
//IncTransSelectedCount = 0;
|
|
||||||
tabSearchTypes.SelectedTab = tabSearchTypes.Tabs[4];
|
tabSearchTypes.SelectedTab = tabSearchTypes.Tabs[4];
|
||||||
|
|
||||||
lbSrchResultsIncTrans.DataSource = null;
|
lbSrchResultsIncTrans.DataSource = null;
|
||||||
@@ -699,13 +648,6 @@ namespace Volian.Controls.Library
|
|||||||
DevComponents.AdvTree.Node newnode;
|
DevComponents.AdvTree.Node newnode;
|
||||||
advTreeStepTypes.Nodes.Clear();
|
advTreeStepTypes.Nodes.Clear();
|
||||||
// Add a dummy node for searching Word Sections (MS Word sections)
|
// Add a dummy node for searching Word Sections (MS Word sections)
|
||||||
//newnode = new DevComponents.AdvTree.Node();
|
|
||||||
//newnode.Text = "Word Sections";
|
|
||||||
//newnode.Selectable = true;
|
|
||||||
//newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
|
|
||||||
//newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
|
|
||||||
//newnode.CheckBoxThreeState = false;
|
|
||||||
//newnode.CheckBoxVisible = true;
|
|
||||||
newnode = NewAdvTreeNode("WORD Sections", true, true); // C2020-010: Change Accessory Sections to Word Sections
|
newnode = NewAdvTreeNode("WORD Sections", true, true); // C2020-010: Change Accessory Sections to Word Sections
|
||||||
wordSectionTreeNode = newnode;
|
wordSectionTreeNode = newnode;
|
||||||
// C2021-028: RNO Only search, disable Word section tree node
|
// C2021-028: RNO Only search, disable Word section tree node
|
||||||
@@ -723,16 +665,6 @@ namespace Volian.Controls.Library
|
|||||||
StepData sd = sdl[sdr.Index]; // get the step type record
|
StepData sd = sdl[sdr.Index]; // get the step type record
|
||||||
string parentName = sd.ParentType; // this gets the parent of the this step/substep type
|
string parentName = sd.ParentType; // this gets the parent of the this step/substep type
|
||||||
|
|
||||||
//Console.WriteLine("{0} {1} - {2}", parentName,sd.Type,sdr.Name);
|
|
||||||
//newnode = new DevComponents.AdvTree.Node();
|
|
||||||
//newnode.Text = sdr.Name;
|
|
||||||
//newnode.Name = sd.Type; // this needed for the FindNodeByName() function
|
|
||||||
//newnode.Tag = sd;
|
|
||||||
//newnode.Selectable = true;
|
|
||||||
//newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
|
|
||||||
//newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
|
|
||||||
//newnode.CheckBoxThreeState = false;
|
|
||||||
//newnode.CheckBoxVisible = true;
|
|
||||||
if (parentName.Equals("Base"))
|
if (parentName.Equals("Base"))
|
||||||
{
|
{
|
||||||
newnode = NewAdvTreeNode(sdr.Name, true, true);
|
newnode = NewAdvTreeNode(sdr.Name, true, true);
|
||||||
@@ -826,8 +758,7 @@ namespace Volian.Controls.Library
|
|||||||
//C2023-010: Select all child nodes when a subtype is selected
|
//C2023-010: Select all child nodes when a subtype is selected
|
||||||
private void pnode_selected(object sender, EventArgs e)
|
private void pnode_selected(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node pnode = sender as DevComponents.AdvTree.Node;
|
if (sender is DevComponents.AdvTree.Node pnode && pnode.HasChildNodes)
|
||||||
if (pnode != null && pnode.HasChildNodes)
|
|
||||||
{
|
{
|
||||||
CheckTreeNodeChildren(pnode.Nodes);
|
CheckTreeNodeChildren(pnode.Nodes);
|
||||||
}
|
}
|
||||||
@@ -842,18 +773,21 @@ namespace Volian.Controls.Library
|
|||||||
int fiCount = fi.ChildFolderCount;
|
int fiCount = fi.ChildFolderCount;
|
||||||
advTreeProcSets.Nodes.Clear();
|
advTreeProcSets.Nodes.Clear();
|
||||||
lstCheckedDocVersions.Clear();
|
lstCheckedDocVersions.Clear();
|
||||||
topnode = new DevComponents.AdvTree.Node();
|
topnode = new DevComponents.AdvTree.Node
|
||||||
topnode.Text = "Available Procedure Sets";
|
{
|
||||||
topnode.Tag = fi;
|
Text = "Available Procedure Sets",
|
||||||
topnode.DataKey = fi.FolderID;
|
Tag = fi,
|
||||||
|
DataKey = fi.FolderID
|
||||||
|
};
|
||||||
advTreeProcSets.Nodes.Add(topnode);
|
advTreeProcSets.Nodes.Add(topnode);
|
||||||
//advTreeProcSets.AfterNodeInsert += new TreeNodeCollectionEventHandler(advTreeProcSets_AfterNodeInsert);
|
|
||||||
|
|
||||||
//B2023-076: Adding option to select all procedure sets
|
//B2023-076: Adding option to select all procedure sets
|
||||||
DevComponents.AdvTree.Node selectAllNode = new Node();
|
DevComponents.AdvTree.Node selectAllNode = new Node
|
||||||
selectAllNode.Text = SelectAllProcedureSetsText;
|
{
|
||||||
selectAllNode.Tag = SelectAllProcedureSetsText;
|
Text = SelectAllProcedureSetsText,
|
||||||
selectAllNode.CheckBoxVisible = true;
|
Tag = SelectAllProcedureSetsText,
|
||||||
|
CheckBoxVisible = true
|
||||||
|
};
|
||||||
selectAllNode.NodeClick += new EventHandler(AllProcedureSets_clicked);
|
selectAllNode.NodeClick += new EventHandler(AllProcedureSets_clicked);
|
||||||
topnode.Nodes.Add(selectAllNode);
|
topnode.Nodes.Add(selectAllNode);
|
||||||
|
|
||||||
@@ -861,18 +795,22 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
foreach (FolderInfo fic in fi.SortedChildFolders)
|
foreach (FolderInfo fic in fi.SortedChildFolders)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
|
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node
|
||||||
newnode.Text = fic.ToString();
|
{
|
||||||
newnode.Tag = fic;
|
Text = fic.ToString(),
|
||||||
newnode.DataKey = fi.FolderID;
|
Tag = fic,
|
||||||
|
DataKey = fi.FolderID
|
||||||
|
};
|
||||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||||
cntnd++;
|
cntnd++;
|
||||||
if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion
|
if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion
|
||||||
{
|
{
|
||||||
if (fic.ChildFolderCount > 0) // B2017-176: Do not display the Working Draft node (don't create dummy for expander)
|
if (fic.ChildFolderCount > 0) // B2017-176: Do not display the Working Draft node (don't create dummy for expander)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
|
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node
|
||||||
tnt.Text = DummyNodeText;
|
{
|
||||||
|
Text = DummyNodeText
|
||||||
|
};
|
||||||
newnode.Nodes.Add(tnt);
|
newnode.Nodes.Add(tnt);
|
||||||
}
|
}
|
||||||
topnode.Nodes.Add(newnode);
|
topnode.Nodes.Add(newnode);
|
||||||
@@ -881,10 +819,12 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
|
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node
|
||||||
newnode.Text = fi.ToString();
|
{
|
||||||
newnode.Tag = fi;
|
Text = fi.ToString(),
|
||||||
newnode.DataKey = fi.FolderID;
|
Tag = fi,
|
||||||
|
DataKey = fi.FolderID
|
||||||
|
};
|
||||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||||
topnode.Nodes.Add(newnode);
|
topnode.Nodes.Add(newnode);
|
||||||
lstCheckedDocVersions.Add(Mydocversion);
|
lstCheckedDocVersions.Add(Mydocversion);
|
||||||
@@ -895,8 +835,10 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
cntnd++;
|
cntnd++;
|
||||||
fi = Mydocversion.MyFolder;
|
fi = Mydocversion.MyFolder;
|
||||||
topnode = new DevComponents.AdvTree.Node();
|
topnode = new DevComponents.AdvTree.Node
|
||||||
topnode.Text = fi.ToString();
|
{
|
||||||
|
Text = fi.ToString()
|
||||||
|
};
|
||||||
advTreeProcSets.Nodes.Add(topnode);
|
advTreeProcSets.Nodes.Add(topnode);
|
||||||
topnode.Tag = fi;
|
topnode.Tag = fi;
|
||||||
topnode.DataKey = fi.FolderID;
|
topnode.DataKey = fi.FolderID;
|
||||||
@@ -931,30 +873,35 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
foreach (FolderInfo fic in fi.SortedChildFolders)
|
foreach (FolderInfo fic in fi.SortedChildFolders)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
|
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node
|
||||||
newnode.Text = fic.ToString();
|
{
|
||||||
newnode.Tag = fic;
|
Text = fic.ToString(),
|
||||||
newnode.DataKey = fic.FolderID;
|
Tag = fic,
|
||||||
|
DataKey = fic.FolderID
|
||||||
|
};
|
||||||
par.Nodes.Add(newnode);
|
par.Nodes.Add(newnode);
|
||||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||||
newnode.Enabled = true;
|
newnode.Enabled = true;
|
||||||
|
|
||||||
if (fic.ChildFolderCount > 0) // B2017-176: Only expand if folder has folders (not working draft nodes)
|
if (fic.ChildFolderCount > 0) // B2017-176: Only expand if folder has folders (not working draft nodes)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
|
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node
|
||||||
tnt.Text = DummyNodeText;
|
{
|
||||||
|
Text = DummyNodeText
|
||||||
|
};
|
||||||
newnode.Nodes.Add(tnt);
|
newnode.Nodes.Add(tnt);
|
||||||
// B2017-176: Only expand if folder has folders (not working draft nodes): the following was moved from the code
|
// B2017-176: Only expand if folder has folders (not working draft nodes): the following was moved from the code
|
||||||
// that would check if this should be enabled if seraching for transition types. The transition controls
|
// that would check if this should be enabled if seraching for transition types. The transition controls
|
||||||
// had a list of associated docversions, so needed to get the docversion in the folder:
|
// had a list of associated docversions, so needed to get the docversion in the folder:
|
||||||
|
if (tabSearchTypes.SelectedTab == tabTranSearch && !dicSelectedFolderNodes.ContainsKey(newnode))
|
||||||
|
dicSelectedFolderNodes.Add(newnode, false);
|
||||||
|
}
|
||||||
|
|
||||||
if (tabSearchTypes.SelectedTab == tabTranSearch)
|
if (tabSearchTypes.SelectedTab == tabTranSearch)
|
||||||
{
|
{
|
||||||
if (!dicSelectedFolderNodes.ContainsKey(newnode)) dicSelectedFolderNodes.Add(newnode, false);
|
//B2026-055 – Transition Search Improvements
|
||||||
// get the docversion for this folder, if it has one and determine whether it is enabled for transitions:
|
//Update Enabling/Disabling of Tree Elements
|
||||||
string svid = null;
|
TraverseTree(advTreeProcSets.Nodes[0], cbxTranVersion.Tag?.ToString().Split(','));
|
||||||
if (fic.FolderDocVersionCount > 0)
|
|
||||||
svid = fic.FolderDocVersions[0].VersionID.ToString();
|
|
||||||
newnode.Enabled = svid != null && cbxTranVersion.Tag != null ? cbxTranVersion.Tag.ToString().Contains(svid) : false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -964,10 +911,10 @@ namespace Volian.Controls.Library
|
|||||||
public void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e)
|
public void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e)
|
||||||
{
|
{
|
||||||
Node bottomNode = BottomTreeNode(cmboTreeROs.AdvTree.Nodes);
|
Node bottomNode = BottomTreeNode(cmboTreeROs.AdvTree.Nodes);
|
||||||
Node lastNode = cmboTreeROs.AdvTree.Nodes[cmboTreeROs.AdvTree.Nodes.Count - 1];
|
_ = cmboTreeROs.AdvTree.Nodes[cmboTreeROs.AdvTree.Nodes.Count - 1]; //LastNode
|
||||||
|
|
||||||
int top = cmboTreeROs.AdvTree.Nodes[0].Bounds.Top;
|
int top = cmboTreeROs.AdvTree.Nodes[0].Bounds.Top;
|
||||||
int bottom = bottomNode.Bounds.Bottom + 5;
|
int bottom;
|
||||||
int hScrollBarHeight = cmboTreeROs.AdvTree.HScrollBar != null ? cmboTreeROs.AdvTree.HScrollBar.Height : 0;
|
int hScrollBarHeight = cmboTreeROs.AdvTree.HScrollBar != null ? cmboTreeROs.AdvTree.HScrollBar.Height : 0;
|
||||||
bottom = bottomNode.Bounds.Bottom + 5;
|
bottom = bottomNode.Bounds.Bottom + 5;
|
||||||
cmboTreeROs.AdvTree.Size = new Size(cmboTreeROs.AdvTree.Size.Width, Math.Min(525, bottom - top + hScrollBarHeight));
|
cmboTreeROs.AdvTree.Size = new Size(cmboTreeROs.AdvTree.Size.Width, Math.Min(525, bottom - top + hScrollBarHeight));
|
||||||
@@ -976,10 +923,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
int yLookFor = (bottom - cmboTreeROs.AdvTree.Size.Height) + 2 * hScrollBarHeight;
|
int yLookFor = (bottom - cmboTreeROs.AdvTree.Size.Height) + 2 * hScrollBarHeight;
|
||||||
Node topNode = FindTreeNodeAt(cmboTreeROs.AdvTree.Nodes, yLookFor);
|
Node topNode = FindTreeNodeAt(cmboTreeROs.AdvTree.Nodes, yLookFor);
|
||||||
if (topNode != null)
|
topNode?.EnsureVisible();
|
||||||
{
|
|
||||||
topNode.EnsureVisible();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -990,8 +934,10 @@ namespace Volian.Controls.Library
|
|||||||
public void SetupAnnotationSearch(AnnotationDetails annotationDetails, DisplayTabControl tc)
|
public void SetupAnnotationSearch(AnnotationDetails annotationDetails, DisplayTabControl tc)
|
||||||
{
|
{
|
||||||
_AnnotationDetails = annotationDetails;
|
_AnnotationDetails = annotationDetails;
|
||||||
List<AnnotationTypeSearch> annoTypes = new List<AnnotationTypeSearch>();
|
List<AnnotationTypeSearch> annoTypes = new List<AnnotationTypeSearch>
|
||||||
annoTypes.Add(new AnnotationTypeSearch("All Annotations", string.Empty));
|
{
|
||||||
|
new AnnotationTypeSearch("All Annotations", string.Empty)
|
||||||
|
};
|
||||||
AnnotationTypeInfoList annoList = AnnotationTypeInfoList.Get();
|
AnnotationTypeInfoList annoList = AnnotationTypeInfoList.Get();
|
||||||
foreach (AnnotationTypeInfo ati in annoList)
|
foreach (AnnotationTypeInfo ati in annoList)
|
||||||
annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString()));
|
annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString()));
|
||||||
@@ -1058,14 +1004,15 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
foreach (Symbol sym in sl)
|
foreach (Symbol sym in sl)
|
||||||
{
|
{
|
||||||
DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem();
|
DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem
|
||||||
|
{
|
||||||
btnCM.Text = string.Format("{0}", (char)sym.Unicode);
|
Text = string.Format("{0}", (char)sym.Unicode),
|
||||||
// to name button use unicode rather than desc, desc may have spaces or odd chars
|
// to name button use unicode rather than desc, desc may have spaces or odd chars
|
||||||
btnCM.Name = "btnCM" + sym.Unicode.ToString();
|
Name = $"btnCM{sym.Unicode.ToString()}",
|
||||||
btnCM.Tooltip = sym.Desc;
|
Tooltip = sym.Desc,
|
||||||
btnCM.Tag = string.Format(@"{0}", sym.Unicode);
|
Tag = string.Format(@"{0}", sym.Unicode),
|
||||||
btnCM.FontBold = true;
|
FontBold = true
|
||||||
|
};
|
||||||
btnCM.Click += new System.EventHandler(btnSym_Click);
|
btnCM.Click += new System.EventHandler(btnSym_Click);
|
||||||
galSymbols.SubItems.Add(btnCM);
|
galSymbols.SubItems.Add(btnCM);
|
||||||
}
|
}
|
||||||
@@ -1114,9 +1061,11 @@ namespace Volian.Controls.Library
|
|||||||
private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable)
|
private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node newnode;
|
DevComponents.AdvTree.Node newnode;
|
||||||
newnode = new DevComponents.AdvTree.Node();
|
newnode = new DevComponents.AdvTree.Node
|
||||||
newnode.Text = nodetext;
|
{
|
||||||
newnode.Selectable = selectable;
|
Text = nodetext,
|
||||||
|
Selectable = selectable
|
||||||
|
};
|
||||||
AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected.
|
AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected.
|
||||||
return newnode;
|
return newnode;
|
||||||
}
|
}
|
||||||
@@ -1163,7 +1112,7 @@ namespace Volian.Controls.Library
|
|||||||
// folder properties dialog
|
// folder properties dialog
|
||||||
bool allowNonAdmin = IncTranCvtPerm();
|
bool allowNonAdmin = IncTranCvtPerm();
|
||||||
List<int> itmsEditable = new List<int>(); // return this list
|
List<int> itmsEditable = new List<int>(); // return this list
|
||||||
int listCount = 0;
|
int listCount;
|
||||||
if (all) // Check all in list
|
if (all) // Check all in list
|
||||||
{
|
{
|
||||||
listCount = _SearchResults.Count;
|
listCount = _SearchResults.Count;
|
||||||
@@ -1187,14 +1136,13 @@ namespace Volian.Controls.Library
|
|||||||
// not all can be converted to text. If count of itmsEditable & lbis are different some cannot be edited.
|
// not all can be converted to text. If count of itmsEditable & lbis are different some cannot be edited.
|
||||||
if (itmsEditable.Count == 0)
|
if (itmsEditable.Count == 0)
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show("You do not have permission to edit any of the procedures, sections, and/or steps" + (all ? "." : " that are selected."),
|
FlexibleMessageBox.Show($"You do not have permission to edit any of the procedures, sections, and/or steps{(all ? "." : " that are selected.")}",
|
||||||
"Convert Transition to Text", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
"Convert Transition to Text", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else if (itmsEditable.Count != listCount)
|
else if (itmsEditable.Count != listCount)
|
||||||
{
|
{
|
||||||
DialogResult ans = FlexibleMessageBox.Show("You only have permission to edit some of the procedures, sections, and/or steps that are selected.procedures, sections, and/or steps" + (all ? "." : " that are selected.") +
|
DialogResult ans = FlexibleMessageBox.Show($"You only have permission to edit some of the procedures, sections, and/or steps that are selected.procedures, sections, and/or steps{(all ? "." : " that are selected.")}\r\n\r\n Should the conversion of the transitions to text continue?",
|
||||||
"\r\n\r\n Should the conversion of the transitions to text continue?",
|
|
||||||
"Convert Transition to Text", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
"Convert Transition to Text", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||||||
if (ans == DialogResult.No) return null;
|
if (ans == DialogResult.No) return null;
|
||||||
}
|
}
|
||||||
@@ -1215,7 +1163,7 @@ namespace Volian.Controls.Library
|
|||||||
private void btnTranCvtSelToTxt_Click(object sender, EventArgs e)
|
private void btnTranCvtSelToTxt_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
// First see if all selected can be converted, i.e. user has permission to edit
|
// First see if all selected can be converted, i.e. user has permission to edit
|
||||||
List<ListBoxItem> lbis = lbSrchResultsIncTrans.CheckedItems;
|
_ = lbSrchResultsIncTrans.CheckedItems;
|
||||||
List<int> itmsEditable = TranCvtCheckPermission(false);
|
List<int> itmsEditable = TranCvtCheckPermission(false);
|
||||||
if (itmsEditable == null || itmsEditable.Count == 0) return;
|
if (itmsEditable == null || itmsEditable.Count == 0) return;
|
||||||
TranCvtToTxt(itmsEditable);
|
TranCvtToTxt(itmsEditable);
|
||||||
@@ -1448,8 +1396,10 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
ROFSTLookup.rodbi db = dbs[i];
|
ROFSTLookup.rodbi db = dbs[i];
|
||||||
|
|
||||||
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(db.dbiTitle);
|
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(db.dbiTitle)
|
||||||
tn.Tag = db;
|
{
|
||||||
|
Tag = db
|
||||||
|
};
|
||||||
cmboTreeROs.Nodes.Add(tn);
|
cmboTreeROs.Nodes.Add(tn);
|
||||||
|
|
||||||
AddDummyGroup(db, tn);
|
AddDummyGroup(db, tn);
|
||||||
@@ -1502,17 +1452,14 @@ namespace Volian.Controls.Library
|
|||||||
if (tn.HasChildNodes && tn.Nodes[0].Text != DummyNodeText) return; // already loaded.
|
if (tn.HasChildNodes && tn.Nodes[0].Text != DummyNodeText) return; // already loaded.
|
||||||
if (tn.HasChildNodes && tn.Nodes[0].Text == DummyNodeText) tn.Nodes[0].Remove();
|
if (tn.HasChildNodes && tn.Nodes[0].Text == DummyNodeText) tn.Nodes[0].Remove();
|
||||||
|
|
||||||
ROFSTLookup.rochild[] chld = null;
|
ROFSTLookup.rochild[] chld;
|
||||||
|
if (tn.Tag is ROFSTLookup.rodbi db)
|
||||||
if (tn.Tag is ROFSTLookup.rodbi)
|
|
||||||
{
|
{
|
||||||
ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)tn.Tag;
|
|
||||||
MyROFSTLookup.LoadChildren(ref db);
|
MyROFSTLookup.LoadChildren(ref db);
|
||||||
chld = db.children;
|
chld = db.children;
|
||||||
}
|
}
|
||||||
else if (tn.Tag is ROFSTLookup.rochild)
|
else if (tn.Tag is ROFSTLookup.rochild ch)
|
||||||
{
|
{
|
||||||
ROFSTLookup.rochild ch = (ROFSTLookup.rochild)tn.Tag;
|
|
||||||
MyROFSTLookup.LoadChildren(ref ch);
|
MyROFSTLookup.LoadChildren(ref ch);
|
||||||
chld = ch.children;
|
chld = ch.children;
|
||||||
}
|
}
|
||||||
@@ -1531,8 +1478,6 @@ namespace Volian.Controls.Library
|
|||||||
for (int i = 0; i < chld.Length; i++)
|
for (int i = 0; i < chld.Length; i++)
|
||||||
{
|
{
|
||||||
ProgressBar_SetValue(i);
|
ProgressBar_SetValue(i);
|
||||||
DevComponents.AdvTree.Node tmp = null;
|
|
||||||
|
|
||||||
ROFSTLookup.rochild roc = chld[i];
|
ROFSTLookup.rochild roc = chld[i];
|
||||||
|
|
||||||
// if this is a group, i.e. type 0, add a dummy node
|
// if this is a group, i.e. type 0, add a dummy node
|
||||||
@@ -1556,10 +1501,13 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Node tmp;
|
||||||
if (roc.value == null)
|
if (roc.value == null)
|
||||||
{
|
{
|
||||||
tmp = new DevComponents.AdvTree.Node(roc.title);
|
tmp = new DevComponents.AdvTree.Node(roc.title)
|
||||||
tmp.Tag = roc;
|
{
|
||||||
|
Tag = roc
|
||||||
|
};
|
||||||
|
|
||||||
int index = FindIndex(tn.Nodes, tmp.Text);
|
int index = FindIndex(tn.Nodes, tmp.Text);
|
||||||
tn.Nodes.Insert(index, tmp);
|
tn.Nodes.Insert(index, tmp);
|
||||||
@@ -1569,8 +1517,10 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tmp = new DevComponents.AdvTree.Node(roc.title);
|
tmp = new DevComponents.AdvTree.Node(roc.title)
|
||||||
tmp.Tag = roc;
|
{
|
||||||
|
Tag = roc
|
||||||
|
};
|
||||||
|
|
||||||
if (roc.roid.Length == 16)
|
if (roc.roid.Length == 16)
|
||||||
{
|
{
|
||||||
@@ -1610,9 +1560,8 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
cbxFndUnLnkROVals.Enabled = false;
|
cbxFndUnLnkROVals.Enabled = false;
|
||||||
}
|
}
|
||||||
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild)
|
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild ro)
|
||||||
{
|
{
|
||||||
ROFSTLookup.rochild ro = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
|
||||||
// B2022-026 RO Memory Reduction code - check children length
|
// B2022-026 RO Memory Reduction code - check children length
|
||||||
cbxFndUnLnkROVals.Enabled = (ro.children == null || ro.children.Length <= 0);
|
cbxFndUnLnkROVals.Enabled = (ro.children == null || ro.children.Length <= 0);
|
||||||
}
|
}
|
||||||
@@ -1634,12 +1583,7 @@ namespace Volian.Controls.Library
|
|||||||
bool keeplooking = true;
|
bool keeplooking = true;
|
||||||
//build a stack (bread crumb trail) of where is procedure set came from within the tree.
|
//build a stack (bread crumb trail) of where is procedure set came from within the tree.
|
||||||
Stack<string> crumbs = new Stack<string>();
|
Stack<string> crumbs = new Stack<string>();
|
||||||
//crumbs.Push(Mydocversion.Name); // ex: "working draft"
|
|
||||||
//crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures"
|
|
||||||
//crumbs.Push(Mydocversion.MyFolder.MyParent.Name); // ex: "STPNOC-South Texas"
|
|
||||||
//crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree
|
|
||||||
|
|
||||||
//crumbs.Push(Mydocversion.Name); // ex: "working draft"
|
|
||||||
crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures"
|
crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures"
|
||||||
FolderInfo fi = Mydocversion.MyFolder.MyParent;
|
FolderInfo fi = Mydocversion.MyFolder.MyParent;
|
||||||
while (fi != null)
|
while (fi != null)
|
||||||
@@ -1824,13 +1768,11 @@ namespace Volian.Controls.Library
|
|||||||
// item to be clicked and to turn on/off the btnTranCvtSelToTxt button for converting selected to test.
|
// item to be clicked and to turn on/off the btnTranCvtSelToTxt button for converting selected to test.
|
||||||
private void lbSrchResultsIncTrans_ItemClicked(object sender, EventArgs e)
|
private void lbSrchResultsIncTrans_ItemClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ListBoxItem lbi = sender as ListBoxItem;
|
if (sender is ListBoxItem lbi)
|
||||||
if (lbi != null)
|
|
||||||
{
|
{
|
||||||
ItemBindingData ibd = lbi.Tag as ItemBindingData;
|
ItemBindingData ibd = lbi.Tag as ItemBindingData;
|
||||||
ItemInfo ii = ibd.DataItem as ItemInfo;
|
|
||||||
bool allowNonAdmin = IncTranCvtPerm();
|
bool allowNonAdmin = IncTranCvtPerm();
|
||||||
if (lbi.CheckState == CheckState.Checked && ii != null)
|
if (lbi.CheckState == CheckState.Checked && ibd.DataItem is ItemInfo ii)
|
||||||
{
|
{
|
||||||
if (!allowNonAdmin && !UserInfo.CanEdit(MyUserInfo, ii.MyDocVersion))
|
if (!allowNonAdmin && !UserInfo.CanEdit(MyUserInfo, ii.MyDocVersion))
|
||||||
{
|
{
|
||||||
@@ -2041,11 +1983,8 @@ namespace Volian.Controls.Library
|
|||||||
bool includeSpecialChars = (TextSearchString != @"\?"); // true;
|
bool includeSpecialChars = (TextSearchString != @"\?"); // true;
|
||||||
// Build list of selected types that were searched
|
// Build list of selected types that were searched
|
||||||
string typstr = null;
|
string typstr = null;
|
||||||
foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : typstr + ", " + s;
|
foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : $"{typstr}, {s}";
|
||||||
TypesSelected = "Filtered By: " + ((typstr != null) ? typstr : "All Step Types");
|
TypesSelected = $"Filtered By: {typstr ?? "All Step Types"}";
|
||||||
//TypesSelected = "Step Types Searched: " + ((typstr != null) ? typstr : "all step types");
|
|
||||||
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "all step types");
|
|
||||||
//TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types";
|
|
||||||
string unitPrefix = string.Empty;
|
string unitPrefix = string.Empty;
|
||||||
if (Mydocversion != null)
|
if (Mydocversion != null)
|
||||||
unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber;
|
unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber;
|
||||||
@@ -2065,11 +2004,8 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//string typstr = null;
|
|
||||||
//foreach (string s in lstCheckedStepTypesStr) typstr = typstr==null?s:typstr + ", " + s;
|
|
||||||
//ReportTitle = "Search for Selected Types"; //"Proms - Search by Type: " + typstr;
|
|
||||||
ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr;
|
ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr;
|
||||||
TypesSelected = "Filtered By: " + typstr;
|
TypesSelected = $"Filtered By: {typstr}";
|
||||||
SearchString = null;
|
SearchString = null;
|
||||||
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
|
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
|
||||||
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, string.Empty, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Value, includeRTFformat, includeSpecialChars, unitPrefix, string.Empty, string.Empty);
|
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, string.Empty, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Value, includeRTFformat, includeSpecialChars, unitPrefix, string.Empty, string.Empty);
|
||||||
@@ -2078,14 +2014,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//if (textSearchString.Equals(string.Empty))
|
|
||||||
//{
|
|
||||||
// MessageBox.Show("Please enter some search text, then click the Search button", "No Search Text");
|
|
||||||
// cbxTextSearchText.Focus();
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
//ReportTitle = string.Format("Proms - {0} Search for '{1}'", cbxBooleanTxtSrch.Checked ? "Boolean" : "Text", TextSearchString);
|
|
||||||
ReportTitle = string.Format("Search for '{0}'", TextSearchString);
|
ReportTitle = string.Format("Search for '{0}'", TextSearchString);
|
||||||
|
|
||||||
// C2020-009: Search - Allow search 'By Word'.
|
// C2020-009: Search - Allow search 'By Word'.
|
||||||
@@ -2116,8 +2044,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
SearchString = TextSearchString;
|
SearchString = TextSearchString;
|
||||||
//TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types";
|
|
||||||
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
|
|
||||||
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
|
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
|
||||||
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
|
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
|
||||||
|
|
||||||
@@ -2131,7 +2057,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
LastSearchWasAnnotations = true; // B2019-119 only refresh annotation search results if an annotation search was done
|
LastSearchWasAnnotations = true; // B2019-119 only refresh annotation search results if an annotation search was done
|
||||||
SearchString = null;
|
SearchString = null;
|
||||||
//ReportTitle = string.Format("Proms - Annotation Search for '{0}'", cbxTextSearchAnnotation.Text);
|
|
||||||
if (cbxTextSearchAnnotation.Text == null || cbxTextSearchAnnotation.Text == string.Empty)
|
if (cbxTextSearchAnnotation.Text == null || cbxTextSearchAnnotation.Text == string.Empty)
|
||||||
{
|
{
|
||||||
ReportTitle = string.Format("Find {0}{1}", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty);
|
ReportTitle = string.Format("Find {0}{1}", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty);
|
||||||
@@ -2140,14 +2065,8 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
ReportTitle = string.Format("Search {0}{1} For '{2}'", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty, cbxTextSearchAnnotation.Text);
|
ReportTitle = string.Format("Search {0}{1} For '{2}'", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty, cbxTextSearchAnnotation.Text);
|
||||||
}
|
}
|
||||||
//ReportTitle = string.Format("Search Annotations for '{0}'", cbxTextSearchAnnotation.Text);
|
|
||||||
//string srchStr = ConvertSpecialChars(cbxTextSearchAnnotation.Text);//cbxTextSearchAnnotation.Text;
|
|
||||||
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
|
|
||||||
|
|
||||||
//SearchResults = ItemInfoList.GetListFromAnnotationSearch(dviSearchList, typeSearchList, textSearchString, srchStr, cbxCaseSensitiveAnnoText.Checked);
|
|
||||||
|
|
||||||
SearchResults = ItemInfoList.GetListFromAnnotationSearch(DVISearchList, TypeSearchList, AnnotationSearchType, cbxTextSearchAnnotation.Text, cbxCaseSensitiveAnnoText.Checked, unitPrefix);
|
SearchResults = ItemInfoList.GetListFromAnnotationSearch(DVISearchList, TypeSearchList, AnnotationSearchType, cbxTextSearchAnnotation.Text, cbxCaseSensitiveAnnoText.Checked, unitPrefix);
|
||||||
//UpdateAnnotationSearchResults();
|
|
||||||
cmbResultsStyleIndex = 2; // display annotation text in results
|
cmbResultsStyleIndex = 2; // display annotation text in results
|
||||||
// C2019-001: Search in RNO steps only
|
// C2019-001: Search in RNO steps only
|
||||||
if (cbxRnoOnlyAnnot.Checked) GetInRNOResults();
|
if (cbxRnoOnlyAnnot.Checked) GetInRNOResults();
|
||||||
@@ -2155,9 +2074,7 @@ namespace Volian.Controls.Library
|
|||||||
else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) // RO Search
|
else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) // RO Search
|
||||||
{
|
{
|
||||||
SearchString = null;
|
SearchString = null;
|
||||||
//ReportTitle = "Proms - Referenced Object Search";
|
|
||||||
ReportTitle = string.Format("Search For Referenced Object:\n{0}", cmboTreeROs.Text);
|
ReportTitle = string.Format("Search For Referenced Object:\n{0}", cmboTreeROs.Text);
|
||||||
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
|
|
||||||
|
|
||||||
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
|
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
|
||||||
{
|
{
|
||||||
@@ -2177,22 +2094,37 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
ReportTitle = string.Format("Search For Transitions: Transition Type: {0}, Transition Category: {1}", cbxTranFormat.SelectedItem, cbxTranCategory.SelectedItem);
|
ReportTitle = string.Format("Search For Transitions: Transition Type: {0}, Transition Category: {1}", cbxTranFormat.SelectedItem, cbxTranCategory.SelectedItem);
|
||||||
string docVersionList = string.Empty;
|
string docVersionList = string.Empty;
|
||||||
|
bool bypassSearch = false;
|
||||||
if (lstCheckedDocVersions.Count == 0)
|
if (lstCheckedDocVersions.Count == 0)
|
||||||
docVersionList = cbxTranVersion.Tag.ToString();
|
docVersionList = cbxTranVersion.Tag.ToString();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string sep = string.Empty;
|
//B2026-055 – Transition Search Improvements
|
||||||
foreach (DocVersionInfo dvi in lstCheckedDocVersions)
|
//Changed matching to take Filtered Formats into account if both tree
|
||||||
|
//Items selected and Format dropdown filtered
|
||||||
|
if (string.IsNullOrEmpty(cbxTranVersion.Tag?.ToString()))
|
||||||
{
|
{
|
||||||
docVersionList += sep + dvi.VersionID.ToString();
|
docVersionList = string.Join(",", lstCheckedDocVersions.Select(y => y.VersionID.ToString()));
|
||||||
sep = ",";
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var fromatversionslst = cbxTranVersion.Tag.ToString().Split(',').Select(int.Parse);
|
||||||
|
var selectedversionlst = lstCheckedDocVersions.Select(y => y.VersionID);
|
||||||
|
docVersionList = string.Join(",", fromatversionslst.Intersect(selectedversionlst));
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(docVersionList))
|
||||||
|
{
|
||||||
|
bypassSearch = true;
|
||||||
|
FlexibleMessageBox.Show("No Matches Found.", "Search");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// B2018-134 to search specifically for Outside Transitions, set docVeronList to empty string so that all procedure sets are considered
|
// B2018-134 to search specifically for Outside Transitions, set docVeronList to empty string so that all procedure sets are considered
|
||||||
if (cbxTranCategory.SelectedItem.ToString() == "Outside")
|
if (cbxTranCategory.SelectedItem?.ToString() == "Outside")
|
||||||
docVersionList = string.Empty;
|
docVersionList = string.Empty;
|
||||||
// added TypeSearchList for bug fix B2015-055
|
// added TypeSearchList for bug fix B2015-055
|
||||||
SearchResults = ItemInfoList.GetListFromTransitionSearch(docVersionList, cbxTranFormat.SelectedIndex - 1, cbxTranCategory.SelectedItem.ToString() == "All" ? string.Empty : cbxTranCategory.SelectedItem.ToString(), TypeSearchList);
|
if (cbxTranFormat.SelectedIndex == -1) cbxTranFormatFillIn(docVersionList);
|
||||||
|
if (!bypassSearch) SearchResults = ItemInfoList.GetListFromTransitionSearch(docVersionList, cbxTranFormat.SelectedIndex - 1, cbxTranCategory.SelectedItem?.ToString() == "All" ? string.Empty : (cbxTranCategory.SelectedItem?.ToString() ?? string.Empty), TypeSearchList);
|
||||||
cmbResultsStyleIndex = 3; // display step text in results
|
cmbResultsStyleIndex = 3; // display step text in results
|
||||||
// C2019-001: Search in RNO steps only
|
// C2019-001: Search in RNO steps only
|
||||||
if (cbxRnoOnlyTrans.Checked) GetInRNOResults();
|
if (cbxRnoOnlyTrans.Checked) GetInRNOResults();
|
||||||
@@ -2249,16 +2181,13 @@ namespace Volian.Controls.Library
|
|||||||
string tmpmsg = (cbxBooleanTxtSrch.Checked && ex.Message.Contains("Syntax error") && ex.Message.Contains("full-text search")) ?
|
string tmpmsg = (cbxBooleanTxtSrch.Checked && ex.Message.Contains("Syntax error") && ex.Message.Contains("full-text search")) ?
|
||||||
"Place \"\" around words that you are searching for, so that parser can better understand what you are trying to find" :
|
"Place \"\" around words that you are searching for, so that parser can better understand what you are trying to find" :
|
||||||
ex.Message;
|
ex.Message;
|
||||||
FlexibleMessageBox.Show(tmpmsg, "Search Error: " + ex.GetType().Name);
|
FlexibleMessageBox.Show(tmpmsg, $"Search Error: {ex.GetType().Name}");
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Cursor = savcursor;
|
Cursor = savcursor;
|
||||||
}
|
}
|
||||||
//Console.WriteLine("{0} Milliseconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalMilliseconds);
|
|
||||||
OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks)));
|
OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks)));
|
||||||
//if (VlnSettings.DebugMode)
|
|
||||||
// MessageBox.Show(string.Format("{0} Milliseconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalMilliseconds));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click)
|
private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click)
|
||||||
@@ -2319,7 +2248,7 @@ namespace Volian.Controls.Library
|
|||||||
if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = AnnotationInfo.Get(ii.ItemAnnotations[0].AnnotationID).SearchText;
|
if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = AnnotationInfo.Get(ii.ItemAnnotations[0].AnnotationID).SearchText;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = "None - [" + ii.DisplayText + "]";
|
if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = $"None - [{ii.DisplayText}]";
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hasAnnot = true;
|
hasAnnot = true;
|
||||||
@@ -2469,7 +2398,7 @@ namespace Volian.Controls.Library
|
|||||||
//C2025-005 Find Step Elements
|
//C2025-005 Find Step Elements
|
||||||
//Need to refresh the Doc List and Available Step Types
|
//Need to refresh the Doc List and Available Step Types
|
||||||
//if All Procedure Sets was selected
|
//if All Procedure Sets was selected
|
||||||
if (n.Tag == SelectAllProcedureSetsText)
|
if (n.Tag is string txt && txt == SelectAllProcedureSetsText)
|
||||||
{
|
{
|
||||||
if (n.Checked)
|
if (n.Checked)
|
||||||
{
|
{
|
||||||
@@ -2520,7 +2449,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (tn.Checked)
|
if (tn.Checked)
|
||||||
{
|
{
|
||||||
//tn.Style = DevComponents.AdvTree.NodeStyles.Apple; // sets green background on selected folder(s)
|
|
||||||
//B2023-112: Don't crash if on top 'All' node (did not have associated folder)
|
//B2023-112: Don't crash if on top 'All' node (did not have associated folder)
|
||||||
FolderInfo fi = tn.Tag as FolderInfo;
|
FolderInfo fi = tn.Tag as FolderInfo;
|
||||||
// if this folder has a docversion, use its id:
|
// if this folder has a docversion, use its id:
|
||||||
@@ -2567,8 +2495,10 @@ namespace Volian.Controls.Library
|
|||||||
lstCheckedStepTypesStr.Clear();
|
lstCheckedStepTypesStr.Clear();
|
||||||
foreach (string str in strs)
|
foreach (string str in strs)
|
||||||
{
|
{
|
||||||
Node newnode = new DevComponents.AdvTree.Node();
|
Node newnode = new DevComponents.AdvTree.Node
|
||||||
newnode.Text = str;
|
{
|
||||||
|
Text = str
|
||||||
|
};
|
||||||
advTreeStepTypes.Nodes.Add(newnode);
|
advTreeStepTypes.Nodes.Add(newnode);
|
||||||
}
|
}
|
||||||
buildStepTypePannelTitle();
|
buildStepTypePannelTitle();
|
||||||
@@ -2657,16 +2587,23 @@ namespace Volian.Controls.Library
|
|||||||
private void cbxTranFormatFillIn(string vid)
|
private void cbxTranFormatFillIn(string vid)
|
||||||
{
|
{
|
||||||
vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(","));
|
vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(","));
|
||||||
|
//B2026-055 – Transition Search Improvements
|
||||||
|
//Change the order of items happening
|
||||||
|
//previous order was causing an error when clicked downdownlist to
|
||||||
|
//show all items and then didn't select an item in the list
|
||||||
|
cbxTranFormat.Items.Clear();
|
||||||
|
cbxTranFormat.Items.Add("All");
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(vid))
|
||||||
|
{
|
||||||
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid));
|
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid));
|
||||||
TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList;
|
TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList;
|
||||||
|
|
||||||
cbxTranFormat.Items.Clear();
|
|
||||||
cbxTranFormat.Items.Add("All");
|
|
||||||
|
|
||||||
for (int i = 0; i < ttl.MaxIndex; i++)
|
for (int i = 0; i < ttl.MaxIndex; i++)
|
||||||
{
|
{
|
||||||
cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", string.Empty), ttl[i].TransFormat.Replace("?.", string.Empty)));
|
cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", string.Empty), ttl[i].TransFormat.Replace("?.", string.Empty)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cbxTranFormat.SelectedIndex = 0;
|
cbxTranFormat.SelectedIndex = 0;
|
||||||
@@ -2717,9 +2654,9 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
if (advTreeStepTypes.Nodes.Count == 1 && n.Checked)
|
if (advTreeStepTypes.Nodes.Count == 1 && n.Checked)
|
||||||
{
|
{
|
||||||
if (n.Tag is DocVersionInfo) // Only set MyDocVersion if it is a DocVersion
|
if (n.Tag is DocVersionInfo info) // Only set MyDocVersion if it is a DocVersion
|
||||||
{
|
{
|
||||||
Mydocversion = (DocVersionInfo)n.Tag;
|
Mydocversion = info;
|
||||||
StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel
|
StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2744,8 +2681,6 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
if (n.Checked)
|
if (n.Checked)
|
||||||
{
|
{
|
||||||
//n.Style = DevComponents.AdvTree.NodeStyles.Apple; // B2023-112: coloring of proc set tree nodes was not working correctly
|
|
||||||
|
|
||||||
if (sd == null)
|
if (sd == null)
|
||||||
{
|
{
|
||||||
//C2023-010: Since the tag is null for Word Sections and HLS types, we need to determine which one has been selected. Word sections we need
|
//C2023-010: Since the tag is null for Word Sections and HLS types, we need to determine which one has been selected. Word sections we need
|
||||||
@@ -2874,7 +2809,7 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor;
|
xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor;
|
||||||
}
|
}
|
||||||
else //lstCheckedStepTypes.Count > 0
|
else
|
||||||
{
|
{
|
||||||
// show how many selected whether panel is expanded or not
|
// show how many selected whether panel is expanded or not
|
||||||
xpStepTypes.TitleText = string.Format("{0} Step Element{1} Selected", lstCheckedStepTypes.Count, (lstCheckedStepTypes.Count > 1) ? "s" : string.Empty); // B2018-132 changed second {0} to {1}
|
xpStepTypes.TitleText = string.Format("{0} Step Element{1} Selected", lstCheckedStepTypes.Count, (lstCheckedStepTypes.Count > 1) ? "s" : string.Empty); // B2018-132 changed second {0} to {1}
|
||||||
@@ -2946,7 +2881,6 @@ namespace Volian.Controls.Library
|
|||||||
private bool OnlyWordSectTypeSel()
|
private bool OnlyWordSectTypeSel()
|
||||||
{
|
{
|
||||||
// B2021-100: Enable/disable the RNO Only checkbox & WORD Sections tree node in Step Elements to Search.
|
// B2021-100: Enable/disable the RNO Only checkbox & WORD Sections tree node in Step Elements to Search.
|
||||||
// lstCheckedStepTypes[x] = 0 for Word sections:
|
|
||||||
if (lstCheckedStepTypes != null && lstCheckedStepTypes.Count == 1 && lstCheckedStepTypes[0] == 0)
|
if (lstCheckedStepTypes != null && lstCheckedStepTypes.Count == 1 && lstCheckedStepTypes[0] == 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -3145,11 +3079,6 @@ namespace Volian.Controls.Library
|
|||||||
lbSrchResults.DataSource = null;
|
lbSrchResults.DataSource = null;
|
||||||
lbSrchResults.Items.Clear();
|
lbSrchResults.Items.Clear();
|
||||||
toolTip1.SetToolTip(lbSrchResults, null);
|
toolTip1.SetToolTip(lbSrchResults, null);
|
||||||
string unitPrefix = string.Empty;
|
|
||||||
if (Mydocversion != null)
|
|
||||||
unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber;
|
|
||||||
if (unitPrefix.EndsWith("#"))
|
|
||||||
unitPrefix = unitPrefix.Replace("#", string.Empty);
|
|
||||||
Cursor = Cursors.WaitCursor;
|
Cursor = Cursors.WaitCursor;
|
||||||
|
|
||||||
try // B2021-045: don't crash if xml file cannot be loaded.
|
try // B2021-045: don't crash if xml file cannot be loaded.
|
||||||
@@ -3179,7 +3108,7 @@ namespace Volian.Controls.Library
|
|||||||
Node tnode = advTreeProcSets.FindNodeByDataKey(folderID);
|
Node tnode = advTreeProcSets.FindNodeByDataKey(folderID);
|
||||||
if (tnode != null) tnode.Checked = true;
|
if (tnode != null) tnode.Checked = true;
|
||||||
}
|
}
|
||||||
Mydocversion = tmpdvi == null ? fromLoadFiledvi : tmpdvi;
|
Mydocversion = tmpdvi ?? fromLoadFiledvi;
|
||||||
}
|
}
|
||||||
|
|
||||||
AdvTreeStepTypesFillIn();
|
AdvTreeStepTypesFillIn();
|
||||||
@@ -3202,10 +3131,10 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
|
|
||||||
string typstr = null;
|
string typstr = null;
|
||||||
foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : typstr + ", " + s;
|
foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : $"{typstr}, {s}";
|
||||||
TypesSelected = "Filtered By: " + ((typstr != null) ? typstr : "All Step Types");
|
TypesSelected = $"Filtered By: {typstr ?? "All Step Types"}";
|
||||||
ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr;
|
ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr;
|
||||||
TypesSelected = "Filtered By: " + typstr;
|
TypesSelected = $"Filtered By: {typstr}";
|
||||||
advTreeStepTypes.RefreshItems();
|
advTreeStepTypes.RefreshItems();
|
||||||
buildStepTypePannelTitle();
|
buildStepTypePannelTitle();
|
||||||
}
|
}
|
||||||
@@ -3298,7 +3227,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show("An error occurred while reading the xml file.\r\n\r\nThis can happen when the file selected for the Load is not saved\r\n" +
|
FlexibleMessageBox.Show("An error occurred while reading the xml file.\r\n\r\nThis can happen when the file selected for the Load is not saved\r\n" +
|
||||||
"from a PROMS Search or if some of the steps no longer exist.", "Search Load Failed", MessageBoxButtons.OK);
|
"from a PROMS Search or if some of the steps no longer exist.", "Search Load Failed", MessageBoxButtons.OK);
|
||||||
@@ -3478,6 +3407,46 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//B2026-055 – Transition Search Improvements
|
||||||
|
//Update Enabling/Disabling of Tree Elements
|
||||||
|
public bool TraverseTree(DevComponents.AdvTree.Node node, string[] versions)
|
||||||
|
{
|
||||||
|
bool result = true;
|
||||||
|
int numhiddenchildnodes = 0;
|
||||||
|
|
||||||
|
// Recursively call this method for each child node
|
||||||
|
foreach (DevComponents.AdvTree.Node childNode in node.Nodes)
|
||||||
|
{
|
||||||
|
if (!TraverseTree(childNode, versions))
|
||||||
|
{
|
||||||
|
numhiddenchildnodes++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process the current node (e.g., enable it if it is contained)
|
||||||
|
|
||||||
|
//Select all always shows
|
||||||
|
//also Enable Dummy Nodes by default
|
||||||
|
if (versions == null || (versions.Length == 1 && string.IsNullOrEmpty(versions[0])) || node.Tag == null || (node.Tag is string txt && txt == SelectAllProcedureSetsText))
|
||||||
|
{
|
||||||
|
node.Enabled = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//if all child nodes are hidden, hide the parent
|
||||||
|
else if (numhiddenchildnodes == node.Nodes.Count)
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
FolderInfo fi = (FolderInfo)node.Tag;
|
||||||
|
if (fi.FolderDocVersionCount > 0)
|
||||||
|
{
|
||||||
|
result = versions.Contains(fi.FolderDocVersions[0].VersionID.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
node.Enabled = result;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
private void btnCopySearchResults_Click(object sender, EventArgs e)
|
private void btnCopySearchResults_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>;
|
ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>;
|
||||||
@@ -3543,7 +3512,6 @@ namespace Volian.Controls.Library
|
|||||||
private bool IncTransCvtAllToTextPerm()
|
private bool IncTransCvtAllToTextPerm()
|
||||||
{
|
{
|
||||||
if (_SearchResults == null) return false;
|
if (_SearchResults == null) return false;
|
||||||
int cnt = 0;
|
|
||||||
bool allowNonAdmin = IncTranCvtPerm();
|
bool allowNonAdmin = IncTranCvtPerm();
|
||||||
foreach (ItemInfo ii in _SearchResults)
|
foreach (ItemInfo ii in _SearchResults)
|
||||||
{
|
{
|
||||||
@@ -3659,6 +3627,8 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#pragma warning restore IDE1006 // Naming Styles
|
||||||
|
#pragma warning restore IDE0044 // Add readonly modifier
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -145,12 +145,6 @@ namespace Volian.Controls.Library
|
|||||||
return (verIdList.Count > 1);
|
return (verIdList.Count > 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//public event ItemSelectedChangedEvent OpenEnhancedDocument;
|
|
||||||
//public void OnOpenEnhancedDocument(ItemSelectedChangedEventArgs args)
|
|
||||||
//{
|
|
||||||
// if (OpenEnhancedDocument != null)
|
|
||||||
// OpenEnhancedDocument(this, args);
|
|
||||||
//}
|
|
||||||
public event ItemSelectedChangedEvent OpenInSeparateWindow;
|
public event ItemSelectedChangedEvent OpenInSeparateWindow;
|
||||||
public void OnOpenInSeparateWindow(ItemSelectedChangedEventArgs args)
|
public void OnOpenInSeparateWindow(ItemSelectedChangedEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -549,6 +543,14 @@ namespace Volian.Controls.Library
|
|||||||
if (((Bar)sender).Items == null) return;
|
if (((Bar)sender).Items == null) return;
|
||||||
if (((Bar)sender).Items.Count == 1)// Remove bar if last item is closed...
|
if (((Bar)sender).Items.Count == 1)// Remove bar if last item is closed...
|
||||||
{
|
{
|
||||||
|
//B2026 - 048 View Only Mode freezes PROMS if last tab closed
|
||||||
|
//if last item is closing, need to re-enable Step Properties
|
||||||
|
//so if closing in view only mode will not freeze when re-opening
|
||||||
|
if (MyEditItem != null && MyEditItem.MyStepPanel.VwMode == E_ViewMode.View)
|
||||||
|
{
|
||||||
|
OnEnableDisableStepProperties(new StepTabRibbonEventArgs(MyEditItem.MyItemInfo, 0, E_ViewMode.Edit));
|
||||||
|
}
|
||||||
|
|
||||||
Bar bar = sender as Bar;
|
Bar bar = sender as Bar;
|
||||||
if (bar != null)
|
if (bar != null)
|
||||||
{
|
{
|
||||||
@@ -568,6 +570,13 @@ namespace Volian.Controls.Library
|
|||||||
ActivateRemainingTab((Bar)sender);
|
ActivateRemainingTab((Bar)sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public event StepTabRibbonEvent EnableDisableStepProperties;
|
||||||
|
private void OnEnableDisableStepProperties(StepTabRibbonEventArgs args)
|
||||||
|
{
|
||||||
|
if (EnableDisableStepProperties != null)
|
||||||
|
EnableDisableStepProperties(this, args);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Public Methods
|
#region Public Methods
|
||||||
public void RefreshItem(ItemInfo myItemInfo)
|
public void RefreshItem(ItemInfo myItemInfo)
|
||||||
|
|||||||
@@ -245,6 +245,20 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
protected void MyContent_Changed(object sender)
|
protected void MyContent_Changed(object sender)
|
||||||
{
|
{
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
if (MyStepPanel.ApplDisplayMode > 0)
|
||||||
|
{
|
||||||
|
MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = MyStepPanel.ApplDisplayMode;
|
||||||
|
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = MyStepPanel.ApplDisplayMode;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||||
|
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
MyItemInfo.MyProcedure.ResetChangeBar();
|
||||||
|
|
||||||
// Update the text to reflect the content change
|
// Update the text to reflect the content change
|
||||||
MyItemInfo.RefreshItemAnnotations();
|
MyItemInfo.RefreshItemAnnotations();
|
||||||
ChangeBar = MyItemInfo.HasChangeBar;
|
ChangeBar = MyItemInfo.HasChangeBar;
|
||||||
@@ -4115,6 +4129,13 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//// TIMING: DisplayItem.TimeIt("CSLARTB Parent");
|
//// TIMING: DisplayItem.TimeIt("CSLARTB Parent");
|
||||||
|
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
if (MyStepPanel.ApplDisplayMode > 0)
|
||||||
|
MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = MyStepPanel.ApplDisplayMode;
|
||||||
|
else
|
||||||
|
MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||||
|
|
||||||
SetText();
|
SetText();
|
||||||
if (itemInfo.IsSupInfoPart)
|
if (itemInfo.IsSupInfoPart)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ namespace Volian.Controls.Library
|
|||||||
public delegate void StepRTBLocationEvent(object sender, StepRTBLocationEventArgs args);
|
public delegate void StepRTBLocationEvent(object sender, StepRTBLocationEventArgs args);
|
||||||
public delegate void StepRTBMouseEvent(object sender, MouseEventArgs args);
|
public delegate void StepRTBMouseEvent(object sender, MouseEventArgs args);
|
||||||
public delegate void StepRTBRoEvent(object sender, StepRTBRoEventArgs args);
|
public delegate void StepRTBRoEvent(object sender, StepRTBRoEventArgs args);
|
||||||
//public delegate void StepRTBMouseWheelEvent(object sender, MouseEventArgs args);
|
|
||||||
public partial class StepRTB : RichTextBox // , IStepRTB
|
public partial class StepRTB : RichTextBox // , IStepRTB
|
||||||
{
|
{
|
||||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
@@ -177,18 +176,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (CursorMovement != null) CursorMovement(sender, args);
|
if (CursorMovement != null) CursorMovement(sender, args);
|
||||||
}
|
}
|
||||||
//public event StepRTBModeChangeEvent ModeChange;
|
|
||||||
//private void OnModeChange(object sender, StepRTBModeChangeEventArgs args)
|
|
||||||
//{
|
|
||||||
// //_MyModeChangeEventArgs = args;
|
|
||||||
// if (ModeChange != null) ModeChange(sender, args);
|
|
||||||
// else MessageBox.Show("StepRTB - no mode change defined");
|
|
||||||
//}
|
|
||||||
//public event StepRTBMouseWheelEvent MouseWheel;
|
|
||||||
//private void OnMouseWheel(object sender, MouseEventArgs args)
|
|
||||||
//{
|
|
||||||
// if (MouseWheel != null) MouseWheel(sender, args);
|
|
||||||
//}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This event is not raised during all the in-between changes for link deletions
|
/// This event is not raised during all the in-between changes for link deletions
|
||||||
@@ -292,23 +279,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// use newer rich text box....
|
|
||||||
//[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
|
|
||||||
//static extern IntPtr LoadLibrary(string lpFileName);
|
|
||||||
//protected override CreateParams CreateParams
|
|
||||||
//{
|
|
||||||
// get
|
|
||||||
// {
|
|
||||||
// CreateParams prams = base.CreateParams;
|
|
||||||
// if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
|
|
||||||
// {
|
|
||||||
// //prams.ExStyle |= 0x020; // transparent
|
|
||||||
|
|
||||||
// prams.ClassName = "RICHEDIT50W";
|
|
||||||
// }
|
|
||||||
// return prams;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
private E_FieldToEdit _FieldToEdit = E_FieldToEdit.StepText;
|
private E_FieldToEdit _FieldToEdit = E_FieldToEdit.StepText;
|
||||||
public E_FieldToEdit FieldToEdit
|
public E_FieldToEdit FieldToEdit
|
||||||
{
|
{
|
||||||
@@ -321,14 +291,12 @@ namespace Volian.Controls.Library
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
//B2020-100 RHM Use SelectionFont rather than the font from the format file.
|
//B2020-100 RHM Use SelectionFont rather than the font from the format file.
|
||||||
//if (_RtfPrefix == null)
|
|
||||||
//{
|
|
||||||
StringBuilder selectedRtfSB = new StringBuilder();
|
StringBuilder selectedRtfSB = new StringBuilder();
|
||||||
//AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont));
|
|
||||||
// B2021-100: if SelectionFont is null, use the FormatFont
|
// B2021-100: if SelectionFont is null, use the FormatFont
|
||||||
AddFontTable(selectedRtfSB, SelectionFont==null?FormatFont:SelectionFont, FontIsFixed(FormatFont));
|
AddFontTable(selectedRtfSB, SelectionFont==null?FormatFont:SelectionFont, FontIsFixed(FormatFont));
|
||||||
_RtfPrefix = selectedRtfSB.ToString();
|
_RtfPrefix = selectedRtfSB.ToString();
|
||||||
//}
|
|
||||||
return _RtfPrefix + @"\f1\fs" + FormatFont.SizeInPoints * 2 + " ";
|
return _RtfPrefix + @"\f1\fs" + FormatFont.SizeInPoints * 2 + " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -375,14 +343,6 @@ namespace Volian.Controls.Library
|
|||||||
get { if (_MyClassName == string.Empty)_MyClassName = CreateParams.ClassName; return _MyClassName; }
|
get { if (_MyClassName == string.Empty)_MyClassName = CreateParams.ClassName; return _MyClassName; }
|
||||||
set { _MyClassName = value; }
|
set { _MyClassName = value; }
|
||||||
}
|
}
|
||||||
//private E_EditPrintMode _epMode = E_EditPrintMode.Edit;
|
|
||||||
//public E_EditPrintMode EpMode
|
|
||||||
//{
|
|
||||||
// get { return _epMode; }
|
|
||||||
// set {
|
|
||||||
// if (value == E_EditPrintMode.Print) Console.WriteLine("");
|
|
||||||
// _epMode = value; }
|
|
||||||
//}
|
|
||||||
private E_ViewMode _vwMode = E_ViewMode.Edit;
|
private E_ViewMode _vwMode = E_ViewMode.Edit;
|
||||||
public E_ViewMode VwMode
|
public E_ViewMode VwMode
|
||||||
{
|
{
|
||||||
@@ -490,16 +450,25 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
ActiveMode = activeMode;
|
ActiveMode = activeMode;
|
||||||
OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true));
|
OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true));
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 2");
|
|
||||||
_InitializingRTB = true;
|
_InitializingRTB = true;
|
||||||
|
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
StepPanel pnl = (Parent as RTBItem)?.MyStepPanel;
|
||||||
|
if (pnl?.ApplDisplayMode > 0)
|
||||||
|
{
|
||||||
|
MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = pnl.ApplDisplayMode;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||||
|
}
|
||||||
|
|
||||||
DisplayText vlntxt = new DisplayText(MyItemInfo, E_EditPrintMode.Edit, VwMode, !ActiveMode, FieldToEdit, true,null, null,false);
|
DisplayText vlntxt = new DisplayText(MyItemInfo, E_EditPrintMode.Edit, VwMode, !ActiveMode, FieldToEdit, true,null, null,false);
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 3");
|
if (pnl?.ApplDisplayMode > 0 && MyItemInfo.MyContent.ContentRoUsageCount > 0)
|
||||||
//if (_origDisplayText != null && vlntxt.StartText == _origDisplayText.StartText)
|
{
|
||||||
//{
|
vlntxt.StartText = RefreshROsWithUnitStartText(vlntxt.StartText, pnl.ApplDisplayMode);
|
||||||
// ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit);
|
}
|
||||||
// if (!ReadOnly && !edit) ReadOnly = true;
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
OrigDisplayText = vlntxt;
|
OrigDisplayText = vlntxt;
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 4");
|
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 4");
|
||||||
|
|
||||||
@@ -507,49 +476,37 @@ namespace Volian.Controls.Library
|
|||||||
//Text = ""; // Initialize text before add text
|
//Text = ""; // Initialize text before add text
|
||||||
// IMPORTANT: SetLineSpacing must be set before Links, otherwise it
|
// IMPORTANT: SetLineSpacing must be set before Links, otherwise it
|
||||||
// was confusing the 'handle' of the rtf box.
|
// was confusing the 'handle' of the rtf box.
|
||||||
//Console.WriteLine("'font',{0}", Font);
|
|
||||||
//if(Text == "")SelectionFont = Font; // Initialize SelectionFont
|
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "1");
|
|
||||||
if (FieldToEdit == E_FieldToEdit.StepText)
|
if (FieldToEdit == E_FieldToEdit.StepText)
|
||||||
{
|
{
|
||||||
if (MyItemInfo != null)
|
if (MyItemInfo != null)
|
||||||
{
|
{
|
||||||
//if (MyItemInfo.IsStep) Font = MyFontFamily == null ? MyItemInfo.FormatStepData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style);
|
|
||||||
//else Font = Font = MyFontFamily == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style);
|
|
||||||
if (MyItemInfo.IsStep)
|
if (MyItemInfo.IsStep)
|
||||||
{
|
{
|
||||||
if (MyFontFamily == null)
|
if (MyFontFamily == null)
|
||||||
{
|
{
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before WindowsFont1");
|
|
||||||
System.Drawing.Font fnt = MyItemInfo.FormatStepData.Font.WindowsFont;
|
System.Drawing.Font fnt = MyItemInfo.FormatStepData.Font.WindowsFont;
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After WindowsFont1a");
|
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
if (FontKey(Font) != FontKey(fnt))
|
if (FontKey(Font) != FontKey(fnt))
|
||||||
Font = fnt;
|
Font = fnt;
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After WindowsFont1b");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Font = VE_Font.GetWinSysFont(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style);
|
Font = VE_Font.GetWinSysFont(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style);
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 4");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (MyFontFamily == null)
|
if (MyFontFamily == null)
|
||||||
{
|
{
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before WindowsFont2");
|
|
||||||
Font = MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont;
|
Font = MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont;
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After WindowsFont2");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Font = VE_Font.GetWinSysFont(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style);
|
Font = VE_Font.GetWinSysFont(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style);
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 5");
|
|
||||||
}
|
}
|
||||||
LastRtf = Rtf;
|
LastRtf = Rtf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "StepRTB.RefreshDisplay Before SetLineSpacing");
|
|
||||||
RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT);
|
RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT);
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "StepRTB.RefreshDisplay After SetLineSpacing");
|
|
||||||
bool readOnlyStep = MyItemInfo == null || MyItemInfo.FormatStepData == null ? false : MyItemInfo.FormatStepData.ReadOnly;
|
bool readOnlyStep = MyItemInfo == null || MyItemInfo.FormatStepData == null ? false : MyItemInfo.FormatStepData.ReadOnly;
|
||||||
if (!readOnlyStep)
|
if (!readOnlyStep)
|
||||||
{
|
{
|
||||||
@@ -557,10 +514,9 @@ namespace Volian.Controls.Library
|
|||||||
if (IsDerived(sc) && !MyItemInfo.EnhAllowMod()) readOnlyStep = true;
|
if (IsDerived(sc) && !MyItemInfo.EnhAllowMod()) readOnlyStep = true;
|
||||||
}
|
}
|
||||||
ReadOnly = readOnlyStep || VwMode == E_ViewMode.View || ActiveMode == false;
|
ReadOnly = readOnlyStep || VwMode == E_ViewMode.View || ActiveMode == false;
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before AddRTFText");
|
|
||||||
AddRtfText(vlntxt.StartText);
|
AddRtfText(vlntxt.StartText);
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After AddRTFText");
|
|
||||||
//AddRtfStyles();
|
|
||||||
// set readonly based on initial modes, however, these may change if
|
// set readonly based on initial modes, however, these may change if
|
||||||
// user selected view mode.
|
// user selected view mode.
|
||||||
ClearUndo();
|
ClearUndo();
|
||||||
@@ -587,10 +543,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
RemoveEventHandlers();
|
RemoveEventHandlers();
|
||||||
OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(false));// View Mode
|
OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(false));// View Mode
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before SelectAll");
|
|
||||||
SelectAll();
|
SelectAll();
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After SelectAll");
|
|
||||||
//if (SelectionHangingIndent !=0) SelectionHangingIndent = 0;
|
|
||||||
int indchar = 0;
|
int indchar = 0;
|
||||||
string indentToken = MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken;
|
string indentToken = MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken;
|
||||||
if (indentToken == null || indentToken == "0") indentToken = "\x5";
|
if (indentToken == null || indentToken == "0") indentToken = "\x5";
|
||||||
@@ -598,7 +551,6 @@ namespace Volian.Controls.Library
|
|||||||
// this line of code was moved before the find for the indent so that
|
// this line of code was moved before the find for the indent so that
|
||||||
// the window gets resized if the indent changes the height, i.e. more line(s) in window.
|
// the window gets resized if the indent changes the height, i.e. more line(s) in window.
|
||||||
AddEventHandlers();
|
AddEventHandlers();
|
||||||
//if (MyItemInfo.InList(186722)) Console.WriteLine("here");
|
|
||||||
if ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0)
|
if ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0)
|
||||||
{
|
{
|
||||||
int nindents = 0;
|
int nindents = 0;
|
||||||
@@ -652,10 +604,50 @@ namespace Volian.Controls.Library
|
|||||||
_InitializingRTB = false;
|
_InitializingRTB = false;
|
||||||
|
|
||||||
AdjustSizeForContents(!ActiveMode);
|
AdjustSizeForContents(!ActiveMode);
|
||||||
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After RefreshDisplay");
|
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
//regex for finding Referenced object links
|
||||||
|
private static Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline);
|
||||||
|
|
||||||
|
//Replace the Default RO text with Unit Specific RO text
|
||||||
|
private string RefreshROsWithUnitStartText(string startText, int unitID)
|
||||||
|
{
|
||||||
|
ROFSTLookup lookup = MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyItemInfo.MyDocVersion);
|
||||||
|
|
||||||
|
MatchCollection mc = regRefObj.Matches(startText);
|
||||||
|
|
||||||
|
if (mc.Count == 0)
|
||||||
|
return startText;
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
int lastindex = 0;
|
||||||
|
|
||||||
|
foreach (Match match in mc)
|
||||||
|
{
|
||||||
|
//get where ther default text for the RO starts
|
||||||
|
int indx = startText.LastIndexOf(@"\v <START]\v0", match.Index) + 13;
|
||||||
|
|
||||||
|
//get the RO, value will be the unit related value
|
||||||
|
ROFSTLookup.rochild roc = lookup.GetRoChild(ROFSTLookup.FormatRoidKey(match.Groups[2].Value, true));
|
||||||
|
|
||||||
|
// append before tags up through the <START]\v0
|
||||||
|
//note if multiple tags this will also append the end up the previous tags
|
||||||
|
sb.Append(startText.Substring(lastindex, indx - lastindex));
|
||||||
|
|
||||||
|
//append the unit specific RO value (replacing where the default RO value was)
|
||||||
|
sb.Append($@"\cf1 {roc.value}\cf0\v");
|
||||||
|
|
||||||
|
lastindex = match.Index;
|
||||||
|
}
|
||||||
|
|
||||||
|
//append referenced object tag & text after tag
|
||||||
|
sb.Append(startText.Substring(lastindex));
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
private bool IsDerived(StepConfig sc)
|
private bool IsDerived(StepConfig sc)
|
||||||
{
|
{
|
||||||
foreach (EnhancedDocument ed in sc.MyEnhancedDocuments)
|
foreach (EnhancedDocument ed in sc.MyEnhancedDocuments)
|
||||||
@@ -752,8 +744,6 @@ namespace Volian.Controls.Library
|
|||||||
protected override void OnMouseWheel(MouseEventArgs e)
|
protected override void OnMouseWheel(MouseEventArgs e)
|
||||||
{
|
{
|
||||||
OnDoMouseWheel(this, e);
|
OnDoMouseWheel(this, e);
|
||||||
//MyRTBItem.MyStepPanel.MouseWheel(e);
|
|
||||||
//base.OnMouseWheel(e);
|
|
||||||
}
|
}
|
||||||
// When a border style is changed, the richtextbox's handle is 'destroyed', so that the handleDestroyed
|
// When a border style is changed, the richtextbox's handle is 'destroyed', so that the handleDestroyed
|
||||||
// event is done. This was causing the event handlers to be removed (RemoveEventHandler) so that the
|
// event is done. This was causing the event handlers to be removed (RemoveEventHandler) so that the
|
||||||
@@ -896,10 +886,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
_MouseDown = false;
|
_MouseDown = false;
|
||||||
}
|
}
|
||||||
//void MyConfig_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
||||||
//{
|
|
||||||
// SaveConfig();
|
|
||||||
//}
|
|
||||||
private void StepRTB_Click(object sender, EventArgs e)
|
private void StepRTB_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (ReadOnly) return;
|
if (ReadOnly) return;
|
||||||
@@ -957,44 +943,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region ApplicationSupport
|
#region ApplicationSupport
|
||||||
// Used in StepTabRibbon:
|
|
||||||
//public void ToggleEditView(E_ViewMode vwMode)
|
|
||||||
//{
|
|
||||||
// OnDoSaveContents(this, new EventArgs()); // SaveText();
|
|
||||||
// //ItemInfo tmp = MyItemInfo;
|
|
||||||
// //MyItemInfo = null;
|
|
||||||
// //ReadOnly = !ReadOnly;
|
|
||||||
// //EpMode = ReadOnly ? E_EditPrintMode.Print : E_EditPrintMode.Edit;
|
|
||||||
// VwMode = vwMode;
|
|
||||||
// ReadOnly = VwMode == E_ViewMode.View;
|
|
||||||
// ViewRTB = ReadOnly;
|
|
||||||
// Clear();
|
|
||||||
// RefreshDisplay(!ViewRTB);
|
|
||||||
// //MyItemInfo = tmp;
|
|
||||||
// SelectionStart = 0;
|
|
||||||
// SelectionLength = 0;
|
|
||||||
// //OnModeChange(this, new StepRTBModeChangeEventArgs(ViewRTB?E_ViewMode.View:E_ViewMode.Edit));
|
|
||||||
//}
|
|
||||||
//public string InsertSymbolInRO(string val)
|
|
||||||
//{
|
|
||||||
// string retval = val;
|
|
||||||
// C2019-043 convert a "->" to the Right Arrow symbol and a "<-" to the Left Arrow Symbol
|
|
||||||
// note that at the dash character gets convert to a non-breaking hyphen "\u8209?"
|
|
||||||
//if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue)
|
|
||||||
//{
|
|
||||||
// retval = retval.Replace("\\u8209?>", GetAddSymbolTextForROs(@"\u8594?")); // Right Arrow
|
|
||||||
// retval = retval.Replace("<\\u8209?", GetAddSymbolTextForROs(@"\u8592?")); // Left Arrow
|
|
||||||
//}
|
|
||||||
//// C2022-021 convert a "<=" to a less than or equal symbol, a ">=" to a greather than or equal symbol and +- to a
|
|
||||||
//// plus/minus symbol in ROs
|
|
||||||
//if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue)
|
|
||||||
//{
|
|
||||||
// retval = retval.Replace("<=", GetAddSymbolTextForROs(@"\u8804?")); // Less than or Equal
|
|
||||||
// retval = retval.Replace(">=", GetAddSymbolTextForROs(@"\u8805?")); // Greater than or Equal
|
|
||||||
// retval = retval.Replace("+\\u8209?", @"\'b1"); // plus/minus - note - is stored as \u8209 and plus/minus is < 256, i.e. handled differently
|
|
||||||
//}
|
|
||||||
// return retval;
|
|
||||||
//}
|
|
||||||
public void InsertRO(string value, string link)
|
public void InsertRO(string value, string link)
|
||||||
{
|
{
|
||||||
// B2023-037: Remove code that saves the unicode characters for <=, >=, +-, <- and -> into the link text. The characters
|
// B2023-037: Remove code that saves the unicode characters for <=, >=, +-, <- and -> into the link text. The characters
|
||||||
@@ -1172,8 +1120,6 @@ namespace Volian.Controls.Library
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//Console.WriteLine("ItemID:{0}", MyItemInfo.ItemID);
|
//Console.WriteLine("ItemID:{0}", MyItemInfo.ItemID);
|
||||||
//if(MyItemInfo.ItemID==10256)
|
|
||||||
// Volian.Base.Library.vlnStackTrace.ShowStackLocal("ItemID:{0}", MyItemInfo.ItemID.ToString());
|
|
||||||
StringBuilder selectedRtfSB = new StringBuilder();
|
StringBuilder selectedRtfSB = new StringBuilder();
|
||||||
AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont));
|
AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont));
|
||||||
_RtfPrefix = selectedRtfSB.ToString();
|
_RtfPrefix = selectedRtfSB.ToString();
|
||||||
@@ -1197,27 +1143,12 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
// B2017-048, B2017-052, B2017-055 ROs sometimes have two start tokens which make them uneditable.
|
// B2017-048, B2017-052, B2017-055 ROs sometimes have two start tokens which make them uneditable.
|
||||||
newRtf = newRtf.Replace("<START]<START]", "<START]");
|
newRtf = newRtf.Replace("<START]<START]", "<START]");
|
||||||
//Point linkIssues = FindLinkIssues(newRtf);
|
|
||||||
//if (linkIssues.X != linkIssues.Y)
|
|
||||||
// newRtf = FixBadLinks(newRtf,linkIssues);
|
|
||||||
SelectedRtf = _LastRtf = newRtf;
|
SelectedRtf = _LastRtf = newRtf;
|
||||||
_lastReadOnly = ReadOnly;
|
_lastReadOnly = ReadOnly;
|
||||||
}
|
}
|
||||||
FindAllLinks();
|
FindAllLinks();
|
||||||
if (txt == "") SelectionFont = FormatFont;
|
if (txt == "") SelectionFont = FormatFont;
|
||||||
}
|
}
|
||||||
//private string FixBadLinks(string newRtf, Point linkIssues)
|
|
||||||
//{
|
|
||||||
// Console.WriteLine("Bad Link rtf = Starts={0}, Ends={1}, \"{2}\"", linkIssues.X,linkIssues.Y, newRtf);
|
|
||||||
// //Volian.Base.Library.vlnStackTrace.ShowStack();
|
|
||||||
// return newRtf;
|
|
||||||
//}
|
|
||||||
//private static Point FindLinkIssues(string rtf)
|
|
||||||
//{
|
|
||||||
// MatchCollection mcStart = Regex.Matches(rtf, @"\<START\]");
|
|
||||||
// MatchCollection mcEnd = Regex.Matches(rtf, @"\[END\>");
|
|
||||||
// return new Point(mcStart.Count, mcEnd.Count);
|
|
||||||
//}
|
|
||||||
public void SetTableGridCellRTFPrefix(Font myfont)
|
public void SetTableGridCellRTFPrefix(Font myfont)
|
||||||
{
|
{
|
||||||
if (_FormatFont == null)
|
if (_FormatFont == null)
|
||||||
@@ -1282,7 +1213,7 @@ namespace Volian.Controls.Library
|
|||||||
sbbeg.Append(@"\i");
|
sbbeg.Append(@"\i");
|
||||||
sbend.Insert(0, @"\i0");
|
sbend.Insert(0, @"\i0");
|
||||||
}
|
}
|
||||||
selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}";
|
selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}");
|
||||||
if (!isFixed)
|
if (!isFixed)
|
||||||
selectedRtfSB.Append(@"{\f1\fnil\fcharset0 " + Volian.Base.Library.vlnFont.ProportionalSymbolFont + @";}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}"); // C2017-036 get best available proportional font for symbols - B2025-039 add Blue for Colored Replace Words
|
selectedRtfSB.Append(@"{\f1\fnil\fcharset0 " + Volian.Base.Library.vlnFont.ProportionalSymbolFont + @";}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}"); // C2017-036 get best available proportional font for symbols - B2025-039 add Blue for Colored Replace Words
|
||||||
else
|
else
|
||||||
@@ -1291,7 +1222,7 @@ namespace Volian.Controls.Library
|
|||||||
// use styles to construct rtf commands to insert into next line (where \b, etc is)
|
// use styles to construct rtf commands to insert into next line (where \b, etc is)
|
||||||
// B2015-134 Hanging Indent with Hard Returns was not being saved- removed \sl-240\slmult0
|
// B2015-134 Hanging Indent with Hard Returns was not being saved- removed \sl-240\slmult0
|
||||||
selectedRtfSB.Append(@"\viewkind4\uc1\pard" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}";
|
selectedRtfSB.Append(@"\viewkind4\uc1\pard" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}";
|
||||||
//selectedRtfSB.Append(@"\viewkind4\uc1\pard\sl-240\slmult0" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool FontIsFixed(Font myFont)
|
private bool FontIsFixed(Font myFont)
|
||||||
@@ -1396,7 +1327,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
string fonttab = FontTable;
|
string fonttab = FontTable;
|
||||||
string fontsize = FontSize;
|
string fontsize = FontSize;
|
||||||
//if (this.DetectUrls) this.DetectUrls = false;
|
|
||||||
if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null);
|
if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null);
|
||||||
int position = SelectionStart;
|
int position = SelectionStart;
|
||||||
SelectionLength = 0;
|
SelectionLength = 0;
|
||||||
@@ -1426,7 +1356,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
private void AddLink50(string linkValue, string linkUrl)
|
private void AddLink50(string linkValue, string linkUrl)
|
||||||
{
|
{
|
||||||
//this.DetectUrls = false;
|
|
||||||
int position = SelectionStart;
|
int position = SelectionStart;
|
||||||
SelectionLength = 0;
|
SelectionLength = 0;
|
||||||
SelectedRtf = string.Format(@"{{\rtf\field{{\*\fldinst{{HYPERLINK ""www.volian.com #{0}"" }}}}{{\fldrslt{{\cf2\ul {1}}}}}}}", linkUrl, linkValue);
|
SelectedRtf = string.Format(@"{{\rtf\field{{\*\fldinst{{HYPERLINK ""www.volian.com #{0}"" }}}}{{\fldrslt{{\cf2\ul {1}}}}}}}", linkUrl, linkValue);
|
||||||
@@ -1479,9 +1408,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
Size offset = Size - ClientSize;
|
Size offset = Size - ClientSize;
|
||||||
int widthNew = (this is TableCellEditor) ? Width : (ContentsSize.Width + offset.Width + AdjustSize.Width);
|
int widthNew = (this is TableCellEditor) ? Width : (ContentsSize.Width + offset.Width + AdjustSize.Width);
|
||||||
//int widthNew = Width;
|
|
||||||
//if (!(this is TableCellEditor))
|
|
||||||
// widthNew = ContentsSize.Width + offset.Width + AdjustSize.Width;
|
|
||||||
int heightNew = ContentsSize.Height + offset.Height + AdjustSize.Height;
|
int heightNew = ContentsSize.Height + offset.Height + AdjustSize.Height;
|
||||||
// Don't make the window narrower unless it has text - RHM - 20100107
|
// Don't make the window narrower unless it has text - RHM - 20100107
|
||||||
Size szNew = new Size(((Text != "" && adjustWidth) ? widthNew : (widthNew > Width ? widthNew : Width)), heightNew);
|
Size szNew = new Size(((Text != "" && adjustWidth) ? widthNew : (widthNew > Width ? widthNew : Width)), heightNew);
|
||||||
@@ -1619,22 +1545,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region ColorSupport - Not currently used.
|
#region ColorSupport - Not currently used.
|
||||||
//private void SetBackGroundColor(ItemInfo itemInfo)
|
|
||||||
//{
|
|
||||||
// string backcolor = null;
|
|
||||||
// int type = (int)itemInfo.MyContent.Type;
|
|
||||||
// FormatInfo formatinfo = itemInfo.ActiveFormat;
|
|
||||||
// if (type == (int)E_FromType.Procedure)
|
|
||||||
// backcolor = formatinfo.PlantFormat.FormatData.ProcData.BackColor;
|
|
||||||
// else if (type == (int)E_FromType.Section)
|
|
||||||
// backcolor = formatinfo.PlantFormat.FormatData.SectData.BackColor;
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// int typindx = (int)itemInfo.MyContent.Type - 20000; // what to do for other types rather than steps
|
|
||||||
// backcolor = formatinfo.PlantFormat.FormatData.StepDataList[typindx].StepLayoutData.BackColor;
|
|
||||||
// }
|
|
||||||
// BackColor = Color.FromName(backcolor);
|
|
||||||
//}
|
|
||||||
#endregion
|
#endregion
|
||||||
#region EventSupport
|
#region EventSupport
|
||||||
#region LinkEvents
|
#region LinkEvents
|
||||||
@@ -1667,8 +1577,6 @@ namespace Volian.Controls.Library
|
|||||||
#region TextAndContentsEvents
|
#region TextAndContentsEvents
|
||||||
void StepRTB_TextChanged(object sender, EventArgs e)
|
void StepRTB_TextChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
//if (Rtf.Contains("<START]<START]"))
|
|
||||||
// Volian.Base.Library.vlnStackTrace.ShowStackLocal(2, 10, "Start Start ItemID={0}", MyItemInfo.ItemID);
|
|
||||||
if (_InitializingRTB || _IsExperimenting) return;
|
if (_InitializingRTB || _IsExperimenting) return;
|
||||||
// Was setting _IsDirty to true here, but this was getting called from
|
// Was setting _IsDirty to true here, but this was getting called from
|
||||||
// 'dotnetbar' when text was NOT Changed. So _IsDirty was made into
|
// 'dotnetbar' when text was NOT Changed. So _IsDirty was made into
|
||||||
@@ -1704,7 +1612,6 @@ namespace Volian.Controls.Library
|
|||||||
private void HandleLocalSelectionChange()
|
private void HandleLocalSelectionChange()
|
||||||
{
|
{
|
||||||
if (this.MyItemInfo != null && this.MyItemInfo.IsRtfRaw) return; // B2017-023 null reference check for empty workdraft set information dialog
|
if (this.MyItemInfo != null && this.MyItemInfo.IsRtfRaw) return; // B2017-023 null reference check for empty workdraft set information dialog
|
||||||
//if (MyRTBItem != null && MyRTBItem.MyStepPanel.SelectedStepRTB != this)
|
|
||||||
if (OnIsNotCurrentSelection(this, new EventArgs()))
|
if (OnIsNotCurrentSelection(this, new EventArgs()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -1720,8 +1627,6 @@ namespace Volian.Controls.Library
|
|||||||
SelectAll();
|
SelectAll();
|
||||||
_HandlingCtrlA = false;
|
_HandlingCtrlA = false;
|
||||||
}
|
}
|
||||||
//HandleOverWrite();
|
|
||||||
//vlnStackTrace.ShowStackLocal("HandleSelectionChangeStack", 1, 10);
|
|
||||||
bool startingValue = _AdjustingSelection;
|
bool startingValue = _AdjustingSelection;
|
||||||
if (_IdentifyingLinks || _ProcessingDelete) return;
|
if (_IdentifyingLinks || _ProcessingDelete) return;
|
||||||
// If the cursor is beyond the end of the line then move the cursor back one character
|
// If the cursor is beyond the end of the line then move the cursor back one character
|
||||||
@@ -1831,14 +1736,6 @@ namespace Volian.Controls.Library
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//private void HandleOverWrite()
|
|
||||||
//{
|
|
||||||
// if (!_OverWrite) return;
|
|
||||||
// if (SelectionLength > 0) return;
|
|
||||||
// if (SelectionStart == TextLength) return;
|
|
||||||
// Console.WriteLine("Handle Overwrite, SelectionStart = {0}, SelectionLength = {1}", SelectionStart, SelectionLength);
|
|
||||||
// SelectionLength = 1;
|
|
||||||
//}
|
|
||||||
private bool _CheckSelection = false;
|
private bool _CheckSelection = false;
|
||||||
#endregion
|
#endregion
|
||||||
#region Delete Handlers
|
#region Delete Handlers
|
||||||
@@ -1857,7 +1754,7 @@ namespace Volian.Controls.Library
|
|||||||
DeleteCurrentSelection(keychars);
|
DeleteCurrentSelection(keychars);
|
||||||
e.SuppressKeyPress = true;
|
e.SuppressKeyPress = true;
|
||||||
break;
|
break;
|
||||||
case RangeStatus.Before_Between: //myRTB1.SelectedText.EndsWith(@"[END><START]")
|
case RangeStatus.Before_Between:
|
||||||
DeleteEndBetweenLinks(keychars);
|
DeleteEndBetweenLinks(keychars);
|
||||||
e.SuppressKeyPress = true;
|
e.SuppressKeyPress = true;
|
||||||
break;
|
break;
|
||||||
@@ -1927,19 +1824,15 @@ namespace Volian.Controls.Library
|
|||||||
/// <param name="setSelect"></param>
|
/// <param name="setSelect"></param>
|
||||||
private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect)
|
private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect)
|
||||||
{
|
{
|
||||||
//_InsertingSpaceBetweenLinks = true;
|
|
||||||
DebugPrint("ICBLvvvvvvvvvvvvvvv>>>");
|
DebugPrint("ICBLvvvvvvvvvvvvvvv>>>");
|
||||||
Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf);
|
Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf);
|
||||||
//_InsertingSpaceBetweenLinks = false;
|
|
||||||
if (setSelect)
|
if (setSelect)
|
||||||
SelectionStart = ll.Start - 6; // account for <START] - 1 for the character typed
|
SelectionStart = ll.Start - 6; // account for <START] - 1 for the character typed
|
||||||
DebugPrint("ICBL^^^^^^^^^^^^^^^>>>");
|
DebugPrint("ICBL^^^^^^^^^^^^^^^>>>");
|
||||||
}
|
}
|
||||||
private void ExpandSelectionToIncludeStart()
|
private void ExpandSelectionToIncludeStart()
|
||||||
{
|
{
|
||||||
//_AdjustingSelection = true;
|
|
||||||
SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start
|
SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start
|
||||||
//_AdjustingSelection = false;
|
|
||||||
}
|
}
|
||||||
public string GetSelectionForClipBoard()
|
public string GetSelectionForClipBoard()
|
||||||
{
|
{
|
||||||
@@ -1986,7 +1879,6 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
_SendBackSpace = true;
|
_SendBackSpace = true;
|
||||||
RtbSendKeys("{BS}"); // remove X
|
RtbSendKeys("{BS}"); // remove X
|
||||||
//this.ClearUndo(); // undo was redisplay 'X' and then deleted text
|
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
DebugSelection("After BS");
|
DebugSelection("After BS");
|
||||||
}
|
}
|
||||||
@@ -2005,9 +1897,7 @@ namespace Volian.Controls.Library
|
|||||||
int slen = SelectionLength + 1 - 7;
|
int slen = SelectionLength + 1 - 7;
|
||||||
// This puts a space at the link that starts at the end of the selection
|
// This puts a space at the link that starts at the end of the selection
|
||||||
InsertCharBetweenLinks(_RangeEndLink.NextLink);
|
InsertCharBetweenLinks(_RangeEndLink.NextLink);
|
||||||
//_AdjustingSelection = true;
|
|
||||||
DeleteSelection(sstart, slen, keychars);
|
DeleteSelection(sstart, slen, keychars);
|
||||||
//_AdjustingSelection = false;
|
|
||||||
_ProcessingKeys--;
|
_ProcessingKeys--;
|
||||||
}
|
}
|
||||||
private void DeleteStartBetweenLinks(string keychars)
|
private void DeleteStartBetweenLinks(string keychars)
|
||||||
@@ -2016,7 +1906,6 @@ namespace Volian.Controls.Library
|
|||||||
DebugSelection("DeleteStartBetweenLinks");
|
DebugSelection("DeleteStartBetweenLinks");
|
||||||
int slen = SelectionLength + 8;
|
int slen = SelectionLength + 8;
|
||||||
int sstart = SelectionStart - 7;
|
int sstart = SelectionStart - 7;
|
||||||
//LinkLocation ll = FindBetweenLinks(SelectionStart);
|
|
||||||
InsertCharBetweenLinks(_RangeStartLink);
|
InsertCharBetweenLinks(_RangeStartLink);
|
||||||
DeleteSelection(sstart, slen, keychars);
|
DeleteSelection(sstart, slen, keychars);
|
||||||
_ProcessingKeys--;
|
_ProcessingKeys--;
|
||||||
@@ -2027,7 +1916,6 @@ namespace Volian.Controls.Library
|
|||||||
DebugSelection("DeleteFromStartOfBox");
|
DebugSelection("DeleteFromStartOfBox");
|
||||||
int slen = SelectionLength;
|
int slen = SelectionLength;
|
||||||
SetSelection(0, 0);
|
SetSelection(0, 0);
|
||||||
//RtbSendKeys(" "); // open for space between links which separates END/START tokens
|
|
||||||
SelectedText = " ";
|
SelectedText = " ";
|
||||||
DeleteSelection(0, slen + 8, keychars);
|
DeleteSelection(0, slen + 8, keychars);
|
||||||
_ProcessingKeys--;
|
_ProcessingKeys--;
|
||||||
@@ -2038,12 +1926,8 @@ namespace Volian.Controls.Library
|
|||||||
DebugSelection("DeleteFromStartOfBoxEndBetweenLinks");
|
DebugSelection("DeleteFromStartOfBoxEndBetweenLinks");
|
||||||
// This puts a space at the link that starts at the end of the selection
|
// This puts a space at the link that starts at the end of the selection
|
||||||
int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for <START] + 2 for the spaces that are added
|
int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for <START] + 2 for the spaces that are added
|
||||||
//LinkLocation ll = FindBetweenLinks(SelectionStart + SelectionLength);
|
|
||||||
InsertCharBetweenLinks(_RangeEndLink.NextLink);
|
InsertCharBetweenLinks(_RangeEndLink.NextLink);
|
||||||
//RtbSendKeys("{RIGHT} "); // open for space between links which separates END/START tokens
|
|
||||||
//int sLen = myRTB1.SelectionStart;
|
|
||||||
SetSelection(0, 0);
|
SetSelection(0, 0);
|
||||||
//RtbSendKeys(" "); // open for space between links which separates END/START tokens
|
|
||||||
SelectedText = " "; // open for space between links which separates END/START tokens
|
SelectedText = " "; // open for space between links which separates END/START tokens
|
||||||
DeleteSelection(0, sLen, keychars);
|
DeleteSelection(0, sLen, keychars);
|
||||||
_ProcessingKeys--;
|
_ProcessingKeys--;
|
||||||
@@ -2150,7 +2034,7 @@ namespace Volian.Controls.Library
|
|||||||
srtb.Rtf = this.SelectedRtf.Replace(@"\u8209?", "-");
|
srtb.Rtf = this.SelectedRtf.Replace(@"\u8209?", "-");
|
||||||
srtb.Rtf = srtb.Rtf.Replace(@"\u9586?", @"\\");
|
srtb.Rtf = srtb.Rtf.Replace(@"\u9586?", @"\\");
|
||||||
string rtnstr = "";
|
string rtnstr = "";
|
||||||
string ctxt = srtb.Text;//this.SelectedText;
|
string ctxt = srtb.Text;
|
||||||
if (ctxt.EndsWith("<START]"))
|
if (ctxt.EndsWith("<START]"))
|
||||||
ctxt = ctxt.Substring(0, ctxt.Length - 7);
|
ctxt = ctxt.Substring(0, ctxt.Length - 7);
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
@@ -2279,7 +2163,6 @@ namespace Volian.Controls.Library
|
|||||||
if (MyItemInfo != null && MyItemInfo.IsRtfRaw && MyItemInfo.FormatStepData.Type.ToUpper().Contains("EQUATION") && !hasEquation)
|
if (MyItemInfo != null && MyItemInfo.IsRtfRaw && MyItemInfo.FormatStepData.Type.ToUpper().Contains("EQUATION") && !hasEquation)
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show("Cannot paste non-equation data into an equation step type.", "Invalid data", MessageBoxButtons.OK);
|
FlexibleMessageBox.Show("Cannot paste non-equation data into an equation step type.", "Invalid data", MessageBoxButtons.OK);
|
||||||
//richTextBox1.Dispose();
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2287,7 +2170,6 @@ namespace Volian.Controls.Library
|
|||||||
else if (hasEquation && (MyItemInfo == null || (MyItemInfo != null && !MyItemInfo.IsRtfRaw && !MyItemInfo.FormatStepData.Type.ToUpper().Contains("EQUATION"))))
|
else if (hasEquation && (MyItemInfo == null || (MyItemInfo != null && !MyItemInfo.IsRtfRaw && !MyItemInfo.FormatStepData.Type.ToUpper().Contains("EQUATION"))))
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show("Cannot paste equation data into an non-equation step type.", "Invalid data", MessageBoxButtons.OK);
|
FlexibleMessageBox.Show("Cannot paste equation data into an non-equation step type.", "Invalid data", MessageBoxButtons.OK);
|
||||||
//richTextBox1.Dispose();
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2546,16 +2428,6 @@ namespace Volian.Controls.Library
|
|||||||
if (SelectionLength > 0) HandleDeleteKeyWithSelectedText(e, null);
|
if (SelectionLength > 0) HandleDeleteKeyWithSelectedText(e, null);
|
||||||
break;
|
break;
|
||||||
case Keys.Insert:
|
case Keys.Insert:
|
||||||
//_OverWrite = !_OverWrite;
|
|
||||||
//if (_OverWrite)
|
|
||||||
//{
|
|
||||||
// HandleSelectionChange();
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// SelectionLength = 0;
|
|
||||||
// HandleSelectionChange();
|
|
||||||
//}
|
|
||||||
// For now, don't allow for toggling between insert/overwrite mode - see
|
// For now, don't allow for toggling between insert/overwrite mode - see
|
||||||
// comment on _OverWrite
|
// comment on _OverWrite
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
@@ -2572,18 +2444,8 @@ namespace Volian.Controls.Library
|
|||||||
ItemInfo myCopyStep = (this.Parent.Parent.Parent as StepTabPanel).MyDisplayTabControl.MyCopyStep;
|
ItemInfo myCopyStep = (this.Parent.Parent.Parent as StepTabPanel).MyDisplayTabControl.MyCopyStep;
|
||||||
if (myCopyStep != null)
|
if (myCopyStep != null)
|
||||||
{
|
{
|
||||||
// commented out as part of bug fix B2016-148 to fix the <Shift><F5> not popping up the paste options
|
|
||||||
//if (this.MyItemInfo.IsSection && myCopyStep.IsSection)
|
|
||||||
// OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste"));
|
|
||||||
//if (this.MyItemInfo.IsStep && myCopyStep.IsStep)
|
|
||||||
//{
|
|
||||||
// if ((this.MyItemInfo.IsHigh && myCopyStep.IsHigh) || (!this.MyItemInfo.IsHigh && !myCopyStep.IsHigh))
|
|
||||||
// OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste"));
|
|
||||||
//}
|
|
||||||
OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste"));
|
OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste"));
|
||||||
}
|
}
|
||||||
//if (!OnCheckClipboard(this, new EventArgs())) return; // check if 'clipboard' contains a step.
|
|
||||||
//OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste"));
|
|
||||||
}
|
}
|
||||||
else if (!e.Control && !e.Alt)
|
else if (!e.Control && !e.Alt)
|
||||||
{
|
{
|
||||||
@@ -2788,7 +2650,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
if (Text == "" && Parent != null && Parent is VlnFlexGrid)
|
if (Text == "" && Parent != null && Parent is VlnFlexGrid)
|
||||||
{
|
{
|
||||||
//ShowMyParentsFonts();
|
|
||||||
SelectionFont = Parent.Font;
|
SelectionFont = Parent.Font;
|
||||||
}
|
}
|
||||||
// add the character with its font depending on the char....
|
// add the character with its font depending on the char....
|
||||||
@@ -3042,7 +2903,6 @@ namespace Volian.Controls.Library
|
|||||||
_AdjustingSelection = true;
|
_AdjustingSelection = true;
|
||||||
PushSelection();
|
PushSelection();
|
||||||
FindLinks();
|
FindLinks();
|
||||||
//IdentifyLinks();
|
|
||||||
PopSelection();
|
PopSelection();
|
||||||
LinkLocation llx = FindLinkLocation();
|
LinkLocation llx = FindLinkLocation();
|
||||||
if (_CheckSelection)
|
if (_CheckSelection)
|
||||||
@@ -3257,98 +3117,6 @@ namespace Volian.Controls.Library
|
|||||||
Select(locStart, locLength);
|
Select(locStart, locLength);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
//#region FontAndStylesSupport
|
|
||||||
//private void ToggleFontStyle(FontStyle style, bool att_on)
|
|
||||||
//{
|
|
||||||
// int start = SelectionStart;
|
|
||||||
// int len = SelectionLength;
|
|
||||||
// System.Drawing.Font currentFont;
|
|
||||||
// FontStyle fs;
|
|
||||||
// for (int i = 0; i < len; ++i)
|
|
||||||
// {
|
|
||||||
// Select(start + i, 1);
|
|
||||||
// currentFont = SelectionFont;
|
|
||||||
// fs = currentFont.Style;
|
|
||||||
// //add or remove style
|
|
||||||
// if (!att_on)fs = fs | style;
|
|
||||||
// else fs = fs & ~style;
|
|
||||||
|
|
||||||
// SelectionFont = new Font(
|
|
||||||
// currentFont.FontFamily,
|
|
||||||
// currentFont.Size,
|
|
||||||
// fs
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a Font with:
|
|
||||||
/// 1) The font applying to the entire selection, if none is the default font.
|
|
||||||
/// 2) The font size applying to the entire selection, if none is the size of the default font.
|
|
||||||
/// 3) A style containing the attributes that are common to the entire selection, default regular.
|
|
||||||
/// </summary>
|
|
||||||
///
|
|
||||||
//public Font GetFontDetails()
|
|
||||||
//{
|
|
||||||
// //This method should handle cases that occur when multiple fonts/styles are selected
|
|
||||||
|
|
||||||
// int start = SelectionStart;
|
|
||||||
// int len = SelectionLength;
|
|
||||||
// int TempStart = 0;
|
|
||||||
|
|
||||||
// if (len <= 1)
|
|
||||||
// {
|
|
||||||
// // Return the selection or default font
|
|
||||||
// if (SelectionFont != null)
|
|
||||||
// return SelectionFont;
|
|
||||||
// else
|
|
||||||
// return Font; // should be default from format.
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Step through the selected text one char at a time
|
|
||||||
// // after setting defaults from first char
|
|
||||||
// _rtbTemp.Rtf = SelectedRtf;
|
|
||||||
|
|
||||||
// //Turn everything on so we can turn it off one by one
|
|
||||||
// FontStyle replystyle =
|
|
||||||
// FontStyle.Bold | FontStyle.Italic | FontStyle.Underline;
|
|
||||||
|
|
||||||
// // Set reply font, size and style to that of first char in selection.
|
|
||||||
// _rtbTemp.Select(TempStart, 1);
|
|
||||||
// string replyfont = _rtbTemp.SelectionFont.Name;
|
|
||||||
// float replyfontsize = _rtbTemp.SelectionFont.Size;
|
|
||||||
// replystyle = replystyle & _rtbTemp.SelectionFont.Style;
|
|
||||||
|
|
||||||
// // Search the rest of the selection
|
|
||||||
// for (int i = 1; i < len; ++i)
|
|
||||||
// {
|
|
||||||
// _rtbTemp.Select(TempStart + i, 1);
|
|
||||||
|
|
||||||
// // Check reply for different style
|
|
||||||
// replystyle = replystyle & _rtbTemp.SelectionFont.Style;
|
|
||||||
|
|
||||||
// // Check font
|
|
||||||
// if (replyfont != _rtbTemp.SelectionFont.FontFamily.Name)
|
|
||||||
// replyfont = "";
|
|
||||||
|
|
||||||
// // Check font size
|
|
||||||
// if (replyfontsize != _rtbTemp.SelectionFont.Size)
|
|
||||||
// replyfontsize = (float)0.0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Now set font and size if more than one font or font size was selected
|
|
||||||
// if (replyfont == "")
|
|
||||||
// replyfont = _rtbTemp.Font.FontFamily.Name;
|
|
||||||
|
|
||||||
// if (replyfontsize == 0.0)
|
|
||||||
// replyfontsize = _rtbTemp.Font.Size;
|
|
||||||
|
|
||||||
// // generate reply font
|
|
||||||
// Font reply
|
|
||||||
// = new Font(replyfont, replyfontsize, replystyle);
|
|
||||||
|
|
||||||
// return reply;
|
|
||||||
//}
|
|
||||||
//#endregion
|
|
||||||
#region EnumsSelectionRange
|
#region EnumsSelectionRange
|
||||||
private enum StartStatus : int
|
private enum StartStatus : int
|
||||||
{
|
{
|
||||||
@@ -3425,12 +3193,6 @@ namespace Volian.Controls.Library
|
|||||||
DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}",
|
DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}",
|
||||||
SelectionStart, SelectionStart + SelectionLength,
|
SelectionStart, SelectionStart + SelectionLength,
|
||||||
TextLength);
|
TextLength);
|
||||||
//if (_RangeStartLink != null)
|
|
||||||
// _RangeStartLink.Show("startLink");
|
|
||||||
//if (_RangeEndLink != null)
|
|
||||||
// _RangeEndLink.Show("endLink");
|
|
||||||
//if (foundLink != null)
|
|
||||||
// foundLink.Show("foundLink");
|
|
||||||
|
|
||||||
if (foundLink == null)
|
if (foundLink == null)
|
||||||
return RTBRangeStatus = RangeStatus.NoContainedLinks;
|
return RTBRangeStatus = RangeStatus.NoContainedLinks;
|
||||||
@@ -3749,7 +3511,6 @@ namespace Volian.Controls.Library
|
|||||||
static void tsi_Click(object sender, EventArgs e)
|
static void tsi_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ToolStripMenuItem tsmi = sender as ToolStripMenuItem;
|
ToolStripMenuItem tsmi = sender as ToolStripMenuItem;
|
||||||
//_ContextMenuStepRTB.MyRTBItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(tsmi.Owner.Location);
|
|
||||||
_ContextMenuStepRTB.OnOpenContextMenu(sender, new StepRTBLocationEventArgs(tsmi.Owner.Location));
|
_ContextMenuStepRTB.OnOpenContextMenu(sender, new StepRTBLocationEventArgs(tsmi.Owner.Location));
|
||||||
}
|
}
|
||||||
// This is our customized Spell Check dialog
|
// This is our customized Spell Check dialog
|
||||||
@@ -4144,63 +3905,6 @@ namespace Volian.Controls.Library
|
|||||||
if (NextLink != null)
|
if (NextLink != null)
|
||||||
Console.WriteLine("LinkLocation: {0}.NextLink {1}", str, NextLink);
|
Console.WriteLine("LinkLocation: {0}.NextLink {1}", str, NextLink);
|
||||||
}
|
}
|
||||||
// #region ClipboardHandler
|
|
||||||
// private const int WM_CUT = 0x0300;
|
|
||||||
// private const int WM_COPY = 0x0301;
|
|
||||||
// private const int WM_PASTE = 0x0302;
|
|
||||||
|
|
||||||
// public delegate void ClipboardEventHandler(object sender, ClipboardEventArgs e);
|
|
||||||
|
|
||||||
// [Category("Clipboard")]
|
|
||||||
// public event ClipboardEventHandler CutText;
|
|
||||||
// [Category("Clipboard")]
|
|
||||||
// public event ClipboardEventHandler CopiedText;
|
|
||||||
// [Category("Clipboard")]
|
|
||||||
// public event ClipboardEventHandler PastedText;
|
|
||||||
|
|
||||||
// protected override void WndProc(ref Message m)
|
|
||||||
// {
|
|
||||||
// if (m.Msg == WM_CUT)
|
|
||||||
// {
|
|
||||||
// if (CutText != null)
|
|
||||||
// CutText(this, new ClipboardEventArgs(this.SelectedText));
|
|
||||||
// }
|
|
||||||
// else if (m.Msg == WM_COPY)
|
|
||||||
// {
|
|
||||||
// if (CopiedText != null)
|
|
||||||
// CopiedText(this, new ClipboardEventArgs(this.SelectedText));
|
|
||||||
// }
|
|
||||||
// else if (m.Msg == WM_PASTE)
|
|
||||||
// {
|
|
||||||
// if (PastedText != null)
|
|
||||||
// PastedText(this, new ClipboardEventArgs(Clipboard.GetText()));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// base.WndProc(ref m);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public class ClipboardEventArgs : EventArgs
|
|
||||||
//{
|
|
||||||
// private string clipboardText;
|
|
||||||
// public string ClipboardText
|
|
||||||
// {
|
|
||||||
// get
|
|
||||||
// {
|
|
||||||
// return clipboardText;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// set
|
|
||||||
// {
|
|
||||||
// clipboardText = value;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public ClipboardEventArgs(string clipboardText)
|
|
||||||
// {
|
|
||||||
// this.clipboardText = clipboardText;
|
|
||||||
// }
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -3367,6 +3367,13 @@ namespace Volian.Controls.Library
|
|||||||
MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//C2026-021 Expand Functionality of Viewing Mode
|
||||||
|
if (MyEditItem.MyStepPanel.VwMode == E_ViewMode.View && MyEditItem.MyStepPanel.ApplDisplayMode > 0)
|
||||||
|
{
|
||||||
|
//Procedure Viewing Mode is set to a specific Unit - so cannot exit vie only mode
|
||||||
|
MessageBox.Show(this, "Procedures with multiple units are only editable when the Viewing Mode is set to Master. To change out of View Only Mode, first open the Step Propeties panel->Applicability tab and change the Viewing Mode to be Master. Then you can disable View Only Mode.", "Procedure Viewing Mode Incompatiple with Edits", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
else if (MyEditItem.MyStepPanel.VwMode == E_ViewMode.View)
|
else if (MyEditItem.MyStepPanel.VwMode == E_ViewMode.View)
|
||||||
{
|
{
|
||||||
//swapping into edit mode, so check out procedure and Setup Security
|
//swapping into edit mode, so check out procedure and Setup Security
|
||||||
|
|||||||
Reference in New Issue
Block a user