B2017-176: Search Panel - Remove Working Draft Nodes from Tree
This commit is contained in:
parent
01fcb29d28
commit
d80c80f66b
@ -98,6 +98,8 @@ namespace Volian.Controls.Library
|
|||||||
_MyRODbID = _MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID;
|
_MyRODbID = _MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
MyROFSTLookup = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,14 +158,18 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
void tabSearchTypes_SelectedTabChanged(object sender, TabStripTabChangedEventArgs e)
|
void tabSearchTypes_SelectedTabChanged(object sender, TabStripTabChangedEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.NewTab == tabTranSearch)
|
if (e.NewTab == tabROSearch)
|
||||||
|
{
|
||||||
|
LoadROComboTree();
|
||||||
|
}
|
||||||
|
else if (e.NewTab == tabTranSearch)
|
||||||
{
|
{
|
||||||
//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 (cbxTranVersion.SelectedIndex > -1)
|
||||||
{
|
{
|
||||||
if (dicExpandedDocVersionNodes.Count > 0)
|
if (dicExpandedFolderNodes.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (DevComponents.AdvTree.Node n in dicExpandedDocVersionNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
|
||||||
{
|
{
|
||||||
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
|
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
|
||||||
if(cbxTranVersion.Tag.ToString().Contains(dvi.VersionID.ToString()))
|
if(cbxTranVersion.Tag.ToString().Contains(dvi.VersionID.ToString()))
|
||||||
@ -196,15 +202,15 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach (DevComponents.AdvTree.Node n in dicExpandedDocVersionNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
|
||||||
n.Enabled = true;
|
n.Enabled = true;
|
||||||
if (dicSelectedDocVersionNodes.Count > 0)
|
if (dicSelectedFolderNodes.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (DevComponents.AdvTree.Node n in dicSelectedDocVersionNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
|
||||||
{
|
{
|
||||||
n.Enabled = true;
|
n.Enabled = true;
|
||||||
}
|
}
|
||||||
dicSelectedDocVersionNodes.Clear();
|
dicSelectedFolderNodes.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -291,12 +297,16 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
cbxTranVersion.Tag = versionList;
|
cbxTranVersion.Tag = versionList;
|
||||||
cbxTranFormatFillIn(versionList);
|
cbxTranFormatFillIn(versionList);
|
||||||
if (dicExpandedDocVersionNodes.Count > 0)
|
if (dicExpandedFolderNodes.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (DevComponents.AdvTree.Node n in dicExpandedDocVersionNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
|
||||||
{
|
{
|
||||||
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
|
FolderInfo fi = (FolderInfo)n.Tag;
|
||||||
if (cbxTranVersion.Tag.ToString().Contains(dvi.VersionID.ToString()))
|
// 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;
|
n.Enabled = true;
|
||||||
else
|
else
|
||||||
n.Enabled = false;
|
n.Enabled = false;
|
||||||
@ -304,10 +314,14 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DevComponents.AdvTree.Node> uncheckNodes = new List<Node>();
|
List<DevComponents.AdvTree.Node> uncheckNodes = new List<Node>();
|
||||||
foreach (DevComponents.AdvTree.Node n in dicSelectedDocVersionNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
|
||||||
{
|
{
|
||||||
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
|
FolderInfo fi = (FolderInfo)n.Tag; // this was crashing in old version of code
|
||||||
if (!versionList.Contains(dvi.VersionID.ToString()))
|
// if this folder has a docversion, use its id:
|
||||||
|
string svid = null;
|
||||||
|
if (fi.FolderDocVersionCount > 0)
|
||||||
|
svid = fi.FolderDocVersions[0].VersionID.ToString();
|
||||||
|
if (svid !=null && !versionList.Contains(svid))
|
||||||
uncheckNodes.Add(n);
|
uncheckNodes.Add(n);
|
||||||
else
|
else
|
||||||
n.Enabled = true;
|
n.Enabled = true;
|
||||||
@ -323,14 +337,14 @@ namespace Volian.Controls.Library
|
|||||||
if (MessageBox.Show(this, "Do you want to expand to all relevant procedure sets for the selected format?", "Expand Procedure Sets", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
if (MessageBox.Show(this, "Do you want to expand to all relevant procedure sets for the selected format?", "Expand Procedure Sets", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
lstCheckedDocVersions.Clear();
|
lstCheckedDocVersions.Clear();
|
||||||
foreach (DevComponents.AdvTree.Node n in dicSelectedDocVersionNodes.Keys)
|
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
|
||||||
uncheckNodes.Add(n);
|
uncheckNodes.Add(n);
|
||||||
while (uncheckNodes.Count > 0)
|
while (uncheckNodes.Count > 0)
|
||||||
{
|
{
|
||||||
uncheckNodes[0].Checked = false;
|
uncheckNodes[0].Checked = false;
|
||||||
uncheckNodes.Remove(uncheckNodes[0]);
|
uncheckNodes.Remove(uncheckNodes[0]);
|
||||||
}
|
}
|
||||||
dicSelectedDocVersionNodes.Clear();
|
dicSelectedFolderNodes.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
@ -512,9 +526,12 @@ namespace Volian.Controls.Library
|
|||||||
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
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
|
if (fic.ChildFolderCount > 0) // B2017-176: Do not display the Working Draft node (don't create dummy for expander)
|
||||||
tnt.Text = "VLN_DUMMY";
|
{
|
||||||
newnode.Nodes.Add(tnt);
|
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
|
||||||
|
tnt.Text = "VLN_DUMMY";
|
||||||
|
newnode.Nodes.Add(tnt);
|
||||||
|
}
|
||||||
topnode.Nodes.Add(newnode);
|
topnode.Nodes.Add(newnode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -525,7 +542,6 @@ namespace Volian.Controls.Library
|
|||||||
newnode.Text = fi.ToString();
|
newnode.Text = fi.ToString();
|
||||||
newnode.Tag = fi;
|
newnode.Tag = fi;
|
||||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||||
AddDocVersionNodes(newnode, fi, true);
|
|
||||||
topnode.Nodes.Add(newnode);
|
topnode.Nodes.Add(newnode);
|
||||||
lstCheckedDocVersions.Add(Mydocversion);
|
lstCheckedDocVersions.Add(Mydocversion);
|
||||||
buildSetToSearchPanelTitle();
|
buildSetToSearchPanelTitle();
|
||||||
@ -565,8 +581,8 @@ namespace Volian.Controls.Library
|
|||||||
// }
|
// }
|
||||||
// vlnStackTrace.ShowStackLocal(e.Node.Text,1,10);
|
// vlnStackTrace.ShowStackLocal(e.Node.Text,1,10);
|
||||||
//}
|
//}
|
||||||
private Dictionary<DevComponents.AdvTree.Node, bool> dicSelectedDocVersionNodes = new Dictionary<DevComponents.AdvTree.Node, bool>();
|
private Dictionary<DevComponents.AdvTree.Node, bool> dicSelectedFolderNodes = new Dictionary<DevComponents.AdvTree.Node, bool>();
|
||||||
private Dictionary<DevComponents.AdvTree.Node, bool> dicExpandedDocVersionNodes = new Dictionary<DevComponents.AdvTree.Node, bool>();
|
private Dictionary<DevComponents.AdvTree.Node, bool> dicExpandedFolderNodes = new Dictionary<DevComponents.AdvTree.Node, bool>();
|
||||||
void advTreeProcSets_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e)
|
void advTreeProcSets_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node par = e.Node;
|
DevComponents.AdvTree.Node par = e.Node;
|
||||||
@ -588,46 +604,29 @@ namespace Volian.Controls.Library
|
|||||||
newnode.Tag = fic;
|
newnode.Tag = fic;
|
||||||
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.
|
||||||
if (fic.HasChildren) // allow for '+' for tree expansion
|
newnode.Enabled = true;
|
||||||
|
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 = "VLN_DUMMY";
|
tnt.Text = "VLN_DUMMY";
|
||||||
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
|
||||||
|
// 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:
|
||||||
|
if (tabSearchTypes.SelectedTab == tabTranSearch)
|
||||||
|
{
|
||||||
|
if (!dicSelectedFolderNodes.ContainsKey(newnode)) dicSelectedFolderNodes.Add(newnode, false);
|
||||||
|
// get the docversion for this folder, if it has one and determine whether it is enabled for transitions:
|
||||||
|
string svid = null;
|
||||||
|
if (fic.FolderDocVersionCount > 0)
|
||||||
|
svid = fic.FolderDocVersions[0].VersionID.ToString();
|
||||||
|
newnode.Enabled = svid != null && cbxTranVersion.Tag != null ? cbxTranVersion.Tag.ToString().Contains(svid) : false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (fi.FolderDocVersionCount > 0)
|
|
||||||
{
|
|
||||||
AddDocVersionNodes(par, fi, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddDocVersionNodes(DevComponents.AdvTree.Node par, FolderInfo fi, bool isChecked)
|
|
||||||
{
|
|
||||||
foreach (DocVersionInfo dv in fi.FolderDocVersions)
|
|
||||||
{
|
|
||||||
//if ((VersionTypeEnum)dv.VersionType == VersionTypeEnum.WorkingDraft)
|
|
||||||
//{
|
|
||||||
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
|
|
||||||
newnode.Text = dv.ToString();
|
|
||||||
newnode.Tag = dv;
|
|
||||||
newnode.Selectable = true;
|
|
||||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
|
||||||
newnode.Checked = isChecked;
|
|
||||||
if (tabSearchTypes.SelectedTab == tabTranSearch)
|
|
||||||
{
|
|
||||||
if (!dicSelectedDocVersionNodes.ContainsKey(newnode)) dicSelectedDocVersionNodes.Add(newnode, false);
|
|
||||||
newnode.Enabled = cbxTranVersion.Tag != null ? cbxTranVersion.Tag.ToString().Contains(dv.VersionID.ToString()) : false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
newnode.Enabled = true;
|
|
||||||
par.Nodes.Add(newnode);
|
|
||||||
dicExpandedDocVersionNodes.Add(newnode, newnode.Enabled);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Node LookInTree(NodeCollection monkeys, string bananna)
|
private Node LookInTree(NodeCollection monkeys, string bananna)
|
||||||
{
|
{
|
||||||
Node foundit = null;
|
Node foundit = null;
|
||||||
@ -657,7 +656,7 @@ namespace Volian.Controls.Library
|
|||||||
//crumbs.Push(Mydocversion.MyFolder.MyParent.Name); // ex: "STPNOC-South Texas"
|
//crumbs.Push(Mydocversion.MyFolder.MyParent.Name); // ex: "STPNOC-South Texas"
|
||||||
//crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree
|
//crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree
|
||||||
|
|
||||||
crumbs.Push(Mydocversion.Name); // ex: "working draft"
|
//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)
|
||||||
@ -688,18 +687,63 @@ namespace Volian.Controls.Library
|
|||||||
#region ROFST Combo Tree
|
#region ROFST Combo Tree
|
||||||
private void LoadROComboTree()
|
private void LoadROComboTree()
|
||||||
{
|
{
|
||||||
if (_MyROFSTLookup == null) return;
|
|
||||||
cmboTreeROs.Nodes.Clear();
|
cmboTreeROs.Nodes.Clear();
|
||||||
|
// if only one docversion selected, this RoFst can be used. If more than one or none (none is all docversions), then check if they
|
||||||
|
// use the same RO fst. If not, put a message as the first tree node and return, otherwise, load the tree.
|
||||||
|
List<DocVersionInfo> dvilTmp = new List<DocVersionInfo>();
|
||||||
|
if (lstCheckedDocVersions == null || lstCheckedDocVersions.Count == 0)
|
||||||
|
{
|
||||||
|
DocVersionInfoList dvil = DocVersionInfoList.Get();
|
||||||
|
foreach (DocVersionInfo dvi in dvil) dvilTmp.Add(dvi);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dvilTmp = lstCheckedDocVersions;
|
||||||
|
|
||||||
|
bool same = true;
|
||||||
|
// get the first rofstId for comparing to the rest:
|
||||||
|
int rofstId = (dvilTmp.Count > 0)? (dvilTmp[0].DocVersionAssociations != null && dvilTmp[0].DocVersionAssociations.Count > 0) ? dvilTmp[0].DocVersionAssociations[0].ROFstID: -1 : -1;
|
||||||
|
|
||||||
|
// for remaining folder/docversions in the list, check if they have an associated rofst & if so, if it is the same as the first in list.
|
||||||
|
for (int i = 1; i < dvilTmp.Count; i++)
|
||||||
|
{
|
||||||
|
if (dvilTmp[i].DocVersionAssociations != null && dvilTmp[i].DocVersionAssociations.Count > 0)
|
||||||
|
{
|
||||||
|
if (rofstId != dvilTmp[i].DocVersionAssociations[0].ROFstID)
|
||||||
|
{
|
||||||
|
same = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// rofsts for selected folder/docversions are not the same, cannot do an ro search:
|
||||||
|
if (!same)
|
||||||
|
{
|
||||||
|
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node();
|
||||||
|
tn.Text = "Incompatible Referenced Objects in selected folders";
|
||||||
|
cmboTreeROs.Nodes.Add(tn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.cmboTreeROs.AdvTree.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(this.cmboTreeROs_BeforeExpand);
|
this.cmboTreeROs.AdvTree.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(this.cmboTreeROs_BeforeExpand);
|
||||||
cmboTreeROs.AdvTree.AfterExpand += new AdvTreeNodeEventHandler(AdvTree_AfterExpandorCollapse);
|
cmboTreeROs.AdvTree.AfterExpand += new AdvTreeNodeEventHandler(AdvTree_AfterExpandorCollapse);
|
||||||
cmboTreeROs.AdvTree.AfterCollapse += new AdvTreeNodeEventHandler(AdvTree_AfterExpandorCollapse);
|
cmboTreeROs.AdvTree.AfterCollapse += new AdvTreeNodeEventHandler(AdvTree_AfterExpandorCollapse);
|
||||||
for (int i = 0; i < _MyROFSTLookup.myHdr.myDbs.Length; i++)
|
// populate the tree - only 1 folder/docversion is selected or all selected use the same rofst:
|
||||||
|
if (lstCheckedDocVersions != null && lstCheckedDocVersions.Count > 0)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node();
|
_MyDocVersion = lstCheckedDocVersions[0];
|
||||||
tn.Text = _MyROFSTLookup.myHdr.myDbs[i].dbiTitle;
|
if (_MyDocVersion.DocVersionAssociations != null && _MyDocVersion.DocVersionAssociations.Count > 0)
|
||||||
tn.Tag = _MyROFSTLookup.myHdr.myDbs[i];
|
{
|
||||||
cmboTreeROs.Nodes.Add(tn);
|
_MyROFSTLookup = _MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(_MyDocVersion);
|
||||||
AddDummyGroup(_MyROFSTLookup.myHdr.myDbs[i], tn);
|
|
||||||
|
for (int i = 0; i < _MyROFSTLookup.myHdr.myDbs.Length; i++)
|
||||||
|
{
|
||||||
|
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node();
|
||||||
|
tn.Text = _MyROFSTLookup.myHdr.myDbs[i].dbiTitle;
|
||||||
|
tn.Tag = _MyROFSTLookup.myHdr.myDbs[i];
|
||||||
|
cmboTreeROs.Nodes.Add(tn);
|
||||||
|
AddDummyGroup(_MyROFSTLookup.myHdr.myDbs[i], tn);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e)
|
void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e)
|
||||||
@ -1505,65 +1549,72 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
#region ProcSetSelection
|
#region ProcSetSelection
|
||||||
private int _MyRODbID;
|
private int _MyRODbID;
|
||||||
|
private static bool checkingChildren = false;
|
||||||
private void advTreeProcSets_AfterCheck(object sender, DevComponents.AdvTree.AdvTreeCellEventArgs e)
|
private void advTreeProcSets_AfterCheck(object sender, DevComponents.AdvTree.AdvTreeCellEventArgs e)
|
||||||
{
|
{
|
||||||
|
// this method gets called if child nodes get checked by the code, return if doing this process.
|
||||||
|
if (checkingChildren) return;
|
||||||
DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode;
|
DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode;
|
||||||
dicSelectedDocVersionNodes[n] = n.Checked;
|
dicSelectedFolderNodes[n] = n.Checked;
|
||||||
|
// if this tree node is checked, and there are children, check the children too.
|
||||||
if (n.Checked)
|
if (n.Checked)
|
||||||
{
|
{
|
||||||
n.Style = DevComponents.AdvTree.NodeStyles.Apple;
|
checkingChildren = true;
|
||||||
if (n.Tag is DocVersionInfo)//If it is a DocVersion add one DocVersion ID
|
if (n.Nodes != null && n.Nodes.Count > 0 && n.Nodes[0].Text != "VLN_DUMMY") CheckTreeNodeChildren(n.Nodes);
|
||||||
{
|
checkingChildren = false;
|
||||||
lstCheckedDocVersions.Add((DocVersionInfo)n.Tag);
|
|
||||||
RefreshStepTypes();// Refresh Step Types after Working Draft is checked.
|
|
||||||
if (lstCheckedDocVersions.Count == 1)//Mydocversion == null)
|
|
||||||
{
|
|
||||||
Mydocversion = (DocVersionInfo)n.Tag;
|
|
||||||
StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (n.Tag is FolderInfo) // If it is a folder add all of the doc version children
|
|
||||||
{
|
|
||||||
AddAllVersions(n.Tag as FolderInfo);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
// if the selected folder has a docversion, handle it:
|
||||||
|
FolderInfo fi = (FolderInfo)n.Tag;
|
||||||
|
RefreshLstCheckedDocVersions();
|
||||||
|
RefreshStepTypes();// Refresh Step Types after Working Draft is checked.
|
||||||
|
if (lstCheckedDocVersions.Count == 1 && fi.FolderDocVersions != null && fi.FolderDocVersions.Count > 0)
|
||||||
{
|
{
|
||||||
n.Style = null;
|
Mydocversion = fi.FolderDocVersions[0];
|
||||||
if (n.Tag is DocVersionInfo)// If docVersion Remove 1 DocVersion
|
StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel
|
||||||
{
|
|
||||||
lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag);
|
|
||||||
RefreshStepTypes();// Refresh Step Types after Working Draft is unchecked.
|
|
||||||
if (lstCheckedDocVersions.Count == 1)
|
|
||||||
{
|
|
||||||
if (Mydocversion != lstCheckedDocVersions[0])
|
|
||||||
{
|
|
||||||
Mydocversion = lstCheckedDocVersions[0];
|
|
||||||
StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (lstCheckedDocVersions.Count == 0)
|
|
||||||
Mydocversion = null;
|
|
||||||
// do this if either none, or more than one procedure set selected
|
|
||||||
ResetStepTypes();//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (n.Tag is FolderInfo) // If foldre remove all docversion children.
|
|
||||||
{
|
|
||||||
RemoveAllVersions(n.Tag as FolderInfo);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//// Enable the RO combo list only if at least one procedure set node
|
|
||||||
//// is selected
|
|
||||||
//cmboTreeROs.Enabled = (lstCheckedDocVersions.Count > 0);
|
|
||||||
//gpFindROs.Enabled = cmboTreeROs.Enabled;
|
|
||||||
|
|
||||||
SetupContextMenu();
|
SetupContextMenu();
|
||||||
|
|
||||||
buildSetToSearchPanelTitle();
|
buildSetToSearchPanelTitle();
|
||||||
}
|
}
|
||||||
|
// check all folder nodes below this
|
||||||
|
private void CheckTreeNodeChildren(NodeCollection nodeCollection)
|
||||||
|
{
|
||||||
|
foreach (Node tn in nodeCollection)
|
||||||
|
{
|
||||||
|
if (!tn.Checked) tn.Checked = true;
|
||||||
|
if (tn.Nodes != null && tn.Nodes.Count > 0 && tn.Nodes[0].Text != "VLN_DUMMY") CheckTreeNodeChildren(tn.Nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// The 'lstCheckedDocVersions' maintains a list of the docversions that are associated with folders that are checked
|
||||||
|
// on the search tree of folders, i.e. procedure sets that should be included in the search.
|
||||||
|
private void RefreshLstCheckedDocVersions()
|
||||||
|
{
|
||||||
|
lstCheckedDocVersions.Clear();
|
||||||
|
AddFromTreeNodes(advTreeProcSets.Nodes); // add docversions to the list
|
||||||
|
LoadROComboTree(); // reset the ro tree based on docversion selections.
|
||||||
|
}
|
||||||
|
private void AddFromTreeNodes(NodeCollection nodeCollection)
|
||||||
|
{
|
||||||
|
foreach (Node tn in nodeCollection)
|
||||||
|
AddFromTreeNode(tn);
|
||||||
|
}
|
||||||
|
private void AddFromTreeNode(Node tn)
|
||||||
|
{
|
||||||
|
if (tn.Checked)
|
||||||
|
{
|
||||||
|
tn.Style = DevComponents.AdvTree.NodeStyles.Apple; // sets green background on selected folder(s)
|
||||||
|
FolderInfo fi = (FolderInfo)tn.Tag;
|
||||||
|
// if this folder has a docversion, use its id:
|
||||||
|
if (tn.Nodes != null && tn.Nodes.Count > 0 && tn.Nodes[0].Text != "VLN_DUMMY") // Folder has been expanded, so add its docversion list
|
||||||
|
{
|
||||||
|
if (fi.FolderDocVersionCount > 0) lstCheckedDocVersions.Add(fi.FolderDocVersions[0]);
|
||||||
|
}
|
||||||
|
else // it has not been expanded process all below.
|
||||||
|
AddAllChildVersions(fi);
|
||||||
|
}
|
||||||
|
else // not checked, set style so no background color
|
||||||
|
tn.Style = null;
|
||||||
|
if (tn.Nodes != null) AddFromTreeNodes(tn.Nodes);
|
||||||
|
}
|
||||||
private void RemoveAllVersions(FolderInfo child)
|
private void RemoveAllVersions(FolderInfo child)
|
||||||
{
|
{
|
||||||
RemoveAllChildVersions(child);
|
RemoveAllChildVersions(child);
|
||||||
@ -1606,7 +1657,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (formatName != dvi.ActiveFormat.Name)
|
if (formatName != dvi.ActiveFormat.Name)
|
||||||
{
|
{
|
||||||
ResetStepTypes("... folders selected include mutliple formats");
|
ResetStepTypes("...folders selected include multiple formats");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user