diff --git a/PROMS/Volian.Controls.Library/DisplaySearch.cs b/PROMS/Volian.Controls.Library/DisplaySearch.cs index dc19a955..b8d7122f 100644 --- a/PROMS/Volian.Controls.Library/DisplaySearch.cs +++ b/PROMS/Volian.Controls.Library/DisplaySearch.cs @@ -342,13 +342,20 @@ namespace Volian.Controls.Library newnode = new DevComponents.AdvTree.Node(); newnode.Text = nodetext; newnode.Selectable = selectable; + AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected. + return newnode; + } + //C2016-045 Allow Folders to be selected. + private void AddCheckBox(bool chxbxvisable, DevComponents.AdvTree.Node newnode) + { newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; newnode.CheckBoxThreeState = false; newnode.CheckBoxVisible = chxbxvisable; - return newnode; + // Set newnode.Checked = parent.Checked + if(newnode.Parent != null) + newnode.Checked = newnode.Parent.Checked; } - public void advTreeStepTypesFillIn() { DevComponents.AdvTree.Node topnode = new DevComponents.AdvTree.Node(); @@ -464,23 +471,7 @@ namespace Volian.Controls.Library DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); newnode.Text = fic.ToString(); newnode.Tag = fic; - - //int tmp; - //if (topnode == null) - //{ - // newnode.Text = "Available Procedure Sets"; - // tmp = advTreeProcSets.Nodes.Add(newnode); - // topnode = newnode; - //} - //else - //{ - // newnode.Selectable = true; - // newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - // newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - // newnode.CheckBoxThreeState = false; - // newnode.CheckBoxVisible = true; - // tmp = topnode.Nodes.Add(newnode); - //} + AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. cntnd++; if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion { @@ -496,12 +487,7 @@ namespace Volian.Controls.Library DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); newnode.Text = fi.ToString(); newnode.Tag = fi; - //newnode.Checked = true; - //newnode.Selectable = true; - //newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - //newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - //newnode.CheckBoxThreeState = false; - //newnode.CheckBoxVisible = true; + AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. AddDocVersionNodes(newnode, fi, true); topnode.Nodes.Add(newnode); lstCheckedDocVersions.Add(Mydocversion); @@ -564,6 +550,7 @@ namespace Volian.Controls.Library newnode.Text = fic.ToString(); newnode.Tag = fic; par.Nodes.Add(newnode); + AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. if (fic.HasChildren) // allow for '+' for tree expansion { DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); @@ -589,10 +576,7 @@ namespace Volian.Controls.Library newnode.Text = dv.ToString(); newnode.Tag = dv; newnode.Selectable = true; - newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - newnode.CheckBoxThreeState = false; - newnode.CheckBoxVisible = true; + AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. newnode.Checked = isChecked; if (tabSearchTypes.SelectedTab == tabTranSearch) { @@ -1491,37 +1475,51 @@ namespace Volian.Controls.Library if (n.Checked) { n.Style = DevComponents.AdvTree.NodeStyles.Apple; - lstCheckedDocVersions.Add((DocVersionInfo)n.Tag); - if (lstCheckedDocVersions.Count == 1)//Mydocversion == null) + if (n.Tag is DocVersionInfo)//If it is a DocVersion add one DocVersion ID { - Mydocversion = (DocVersionInfo)n.Tag; - advTreeStepTypesFillIn(); + lstCheckedDocVersions.Add((DocVersionInfo)n.Tag); + if (lstCheckedDocVersions.Count == 1)//Mydocversion == null) + { + Mydocversion = (DocVersionInfo)n.Tag; + advTreeStepTypesFillIn(); + } + } + else if (n.Tag is FolderInfo) // If it is a folder add all of the doc version children + { + AddAllVersions(n.Tag as FolderInfo); } } else { n.Style = null; - lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag); - if (lstCheckedDocVersions.Count == 1) + if (n.Tag is DocVersionInfo)// If docVersion Remove 1 DocVersion { - if (Mydocversion != lstCheckedDocVersions[0]) + lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag); + if (lstCheckedDocVersions.Count == 1) { - Mydocversion = lstCheckedDocVersions[0]; - advTreeStepTypesFillIn(); + if (Mydocversion != lstCheckedDocVersions[0]) + { + Mydocversion = lstCheckedDocVersions[0]; + advTreeStepTypesFillIn(); + } + } + else + { + if (lstCheckedDocVersions.Count == 0) + Mydocversion = null; + // do this if either none, or more than one procedure set selected + advTreeStepTypes.Nodes.Clear(); + lstCheckedStepTypes.Clear(); + lstCheckedStepTypesStr.Clear(); + Node newnode = new DevComponents.AdvTree.Node(); + newnode.Text = "....select a procedure set for types to appear..."; + advTreeStepTypes.Nodes.Add(newnode); + buildStepTypePannelTitle(); } } - else + else if (n.Tag is FolderInfo) // If foldre remove all docversion children. { - if (lstCheckedDocVersions.Count == 0) - Mydocversion = null; - // do this if either none, or more than one procedure set selected - advTreeStepTypes.Nodes.Clear(); - lstCheckedStepTypes.Clear(); - lstCheckedStepTypesStr.Clear(); - Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = "....select a procedure set for types to appear..."; - advTreeStepTypes.Nodes.Add(newnode); - buildStepTypePannelTitle(); + RemoveAllVersions(n.Tag as FolderInfo); } } //// Enable the RO combo list only if at least one procedure set node @@ -1533,7 +1531,28 @@ namespace Volian.Controls.Library buildSetToSearchPanelTitle(); } - + // remove all docversion children + private void RemoveAllVersions(FolderInfo myFolderInfo) + { + if (myFolderInfo.FolderDocVersionCount > 0) + foreach(DocVersionInfo dvi in myFolderInfo.FolderDocVersions) + if(lstCheckedDocVersions.Contains (dvi)) + lstCheckedDocVersions.Remove(dvi); + if (myFolderInfo.ChildFolders != null) + foreach (FolderInfo folderChild in myFolderInfo.ChildFolders) + RemoveAllVersions(folderChild); + } + // add all docversion children + private void AddAllVersions(FolderInfo myFolderInfo) + { + if (myFolderInfo.FolderDocVersionCount > 0) + foreach(DocVersionInfo dvi in myFolderInfo.FolderDocVersions) + if(!lstCheckedDocVersions.Contains (dvi)) + lstCheckedDocVersions.Add(dvi); + if (myFolderInfo.ChildFolders != null) + foreach (FolderInfo folderChild in myFolderInfo.ChildFolders) + AddAllVersions(folderChild); + } private void cbxTranFormatFillIn(string vid) { vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(",")); @@ -1556,13 +1575,10 @@ namespace Volian.Controls.Library _DoingRange = (etm & E_TransUI.StepLast) == E_TransUI.StepLast; */ } - - private void xpSetToSearch_ExpandedChanged(object sender, ExpandedChangeEventArgs e) { buildSetToSearchPanelTitle(); } - private void buildSetToSearchPanelTitle() { if (lstCheckedDocVersions.Count == 0) @@ -1590,19 +1606,19 @@ namespace Volian.Controls.Library btnSearch.Enabled = true; tabSearchTypes.Enabled = true; // enable all the search tabs } - } - private void advTreeProcSets_AfterNodeSelect(object sender, AdvTreeNodeEventArgs e) { DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode; if (advTreeStepTypes.Nodes.Count == 1 && n.Checked) { - Mydocversion = (DocVersionInfo)n.Tag; - advTreeStepTypesFillIn(); + if (n.Tag is DocVersionInfo) // Only set MyDocVersion if it is a DocVersion + { + Mydocversion = (DocVersionInfo)n.Tag; + advTreeStepTypesFillIn(); + } } } - #endregion #region StepTypeSelection