B2023-112: Search All Procedure Sets does not always work

This commit is contained in:
Kathy Ruffing 2023-11-20 10:21:52 -05:00
parent 3a81a99f3d
commit e45c373920

View File

@ -796,6 +796,10 @@ namespace Volian.Controls.Library
node.Checked = pNode.Checked; node.Checked = pNode.Checked;
CheckTreeNodeChildren(node.Nodes); CheckTreeNodeChildren(node.Nodes);
} }
// B2023-112: Clear the docversion list - this flags 'All' when the 'All Proc Sets' tree node is checked and 'None' when it isn't. Then
// Use buildSetToSearchPanelTitle to set the text for how many sets are in search.
lstCheckedDocVersions.Clear();
buildSetToSearchPanelTitle();
} }
private void AllSectionTypes_clicked(object sender, EventArgs e) private void AllSectionTypes_clicked(object sender, EventArgs e)
@ -2392,18 +2396,18 @@ namespace Volian.Controls.Library
{ {
if (tn.Checked) if (tn.Checked)
{ {
tn.Style = DevComponents.AdvTree.NodeStyles.Apple; // sets green background on selected folder(s) //tn.Style = DevComponents.AdvTree.NodeStyles.Apple; // sets green background on selected folder(s)
FolderInfo fi = (FolderInfo)tn.Tag; //B2023-112: Don't crash if on top 'All' node (did not have associated folder)
FolderInfo fi = tn.Tag as FolderInfo;
// if this folder has a docversion, use its id: // if this folder has a docversion, use its id:
if (tn.Nodes != null && tn.Nodes.Count > 0 && tn.Nodes[0].Text != DummyNodeText) // Folder has been expanded, so add its docversion list if (tn.Nodes != null && tn.Nodes.Count > 0 && tn.Nodes[0].Text != DummyNodeText) // Folder has been expanded, so add its docversion list
{ {
if (fi.FolderDocVersionCount > 0) lstCheckedDocVersions.Add(fi.FolderDocVersions[0]); if (fi != null && fi.FolderDocVersionCount > 0) lstCheckedDocVersions.Add(fi.FolderDocVersions[0]);
} }
else // it has not been expanded process all below. else // it has not been expanded process all below.
{ {
//B2023-076: Do not process the "Select All" node //B2023-076: Do not process the "Select All" node
if (tn.Text != SelectAllProcedureSetsText) if (tn.Text != SelectAllProcedureSetsText && fi != null)
AddAllChildVersions(fi); AddAllChildVersions(fi);
} }
} }
@ -2548,7 +2552,16 @@ namespace Volian.Controls.Library
private void buildSetToSearchPanelTitle() private void buildSetToSearchPanelTitle()
{ {
if (lstCheckedDocVersions.Count == 0) // B2023-112: lstCheckedDocVersions has list of sets, if 'all' it is empty. However, in order to get proc set tree to handle appropriate selections
// and work with this list, check both the list count and the whether the 'all' is checked.
if (lstCheckedDocVersions.Count == 0 && advTreeProcSets.Nodes != null && (advTreeProcSets.Nodes.Count <=1 || (advTreeProcSets.Nodes.Count > 1 && advTreeProcSets.Nodes[0].Nodes != null)) && (advTreeProcSets.Nodes[0].Nodes.Count == 0 || (advTreeProcSets.Nodes[0].Nodes.Count > 0 && !advTreeProcSets.Nodes[0].Nodes[0].Checked)))
{
xpSetToSearch.TitleText = string.Format("No Procedure Sets Selected");
xpSetToSearch.TitleStyle.BackColor1.Color = Color.PapayaWhip;
btnSearch.Enabled = false;
tabSearchTypes.Enabled = false; // disable all the search tabs
}
else if (lstCheckedDocVersions.Count == 0)
{ {
xpSetToSearch.TitleText = string.Format("All Procedure Sets Selected"); xpSetToSearch.TitleText = string.Format("All Procedure Sets Selected");
xpSetToSearch.TitleStyle.BackColor1.Color = Color.PapayaWhip; xpSetToSearch.TitleStyle.BackColor1.Color = Color.PapayaWhip;
@ -2577,6 +2590,9 @@ namespace Volian.Controls.Library
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
} }
} }
// B2023-112: If unchecking a procedure set, uncheck the 'All' node also
if (n.Checked)
advTreeProcSets.Nodes[0].Nodes[0].Checked = false;
} }
#endregion #endregion
@ -2595,7 +2611,7 @@ namespace Volian.Controls.Library
if (n.Checked) if (n.Checked)
{ {
n.Style = DevComponents.AdvTree.NodeStyles.Apple; //n.Style = DevComponents.AdvTree.NodeStyles.Apple; // B2023-112: coloring of proc set tree nodes was not working correctly
if (sd == null) if (sd == null)
{ {