B2026-055 – Transition Search Improvements
This commit is contained in:
@@ -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)
|
||||||
@@ -475,6 +459,10 @@ namespace Volian.Controls.Library
|
|||||||
versionID: group.Max(x => x.VersionID)
|
versionID: group.Max(x => x.VersionID)
|
||||||
)).OrderBy(y => y.Title).ToList();
|
)).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)
|
foreach (FormatVersion fv in fvlst)
|
||||||
{
|
{
|
||||||
cbxTranVersion.Items.Add(fv);
|
cbxTranVersion.Items.Add(fv);
|
||||||
@@ -504,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"))
|
||||||
{
|
{
|
||||||
@@ -564,31 +526,16 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
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;
|
||||||
@@ -614,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;
|
||||||
@@ -697,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
|
||||||
@@ -721,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);
|
||||||
@@ -824,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);
|
||||||
}
|
}
|
||||||
@@ -840,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);
|
||||||
|
|
||||||
@@ -859,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);
|
||||||
@@ -879,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);
|
||||||
@@ -893,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;
|
||||||
@@ -929,43 +873,48 @@ 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)
|
if (tabSearchTypes.SelectedTab == tabTranSearch && !dicSelectedFolderNodes.ContainsKey(newnode))
|
||||||
|
dicSelectedFolderNodes.Add(newnode, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
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));
|
||||||
@@ -974,12 +923,9 @@ 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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -988,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()));
|
||||||
@@ -1056,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);
|
||||||
}
|
}
|
||||||
@@ -1112,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;
|
||||||
}
|
}
|
||||||
@@ -1161,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;
|
||||||
@@ -1185,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;
|
||||||
}
|
}
|
||||||
@@ -1213,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);
|
||||||
@@ -1446,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);
|
||||||
@@ -1500,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;
|
||||||
}
|
}
|
||||||
@@ -1529,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
|
||||||
@@ -1554,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);
|
||||||
@@ -1567,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)
|
||||||
{
|
{
|
||||||
@@ -1608,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);
|
||||||
}
|
}
|
||||||
@@ -1632,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)
|
||||||
@@ -1822,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))
|
||||||
{
|
{
|
||||||
@@ -2039,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;
|
||||||
@@ -2063,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);
|
||||||
@@ -2076,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'.
|
||||||
@@ -2114,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);
|
||||||
|
|
||||||
@@ -2129,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);
|
||||||
@@ -2138,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();
|
||||||
@@ -2153,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)
|
||||||
{
|
{
|
||||||
@@ -2175,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();
|
||||||
@@ -2247,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)
|
||||||
@@ -2317,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;
|
||||||
@@ -2467,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)
|
||||||
{
|
{
|
||||||
@@ -2518,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:
|
||||||
@@ -2565,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();
|
||||||
@@ -2655,17 +2587,24 @@ 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;
|
||||||
cbxTranCategory.Items.Clear();
|
cbxTranCategory.Items.Clear();
|
||||||
@@ -2715,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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2742,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
|
||||||
@@ -2872,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}
|
||||||
@@ -2944,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;
|
||||||
|
|
||||||
@@ -3143,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.
|
||||||
@@ -3177,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();
|
||||||
@@ -3200,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();
|
||||||
}
|
}
|
||||||
@@ -3296,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);
|
||||||
@@ -3476,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>;
|
||||||
@@ -3541,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)
|
||||||
{
|
{
|
||||||
@@ -3657,6 +3627,8 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#pragma warning restore IDE1006 // Naming Styles
|
||||||
|
#pragma warning restore IDE0044 // Add readonly modifier
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user