better tree node logic

This commit is contained in:
John Jenko 2010-04-19 20:01:25 +00:00
parent a2ce52dd54
commit 8cfc46ffde

View File

@ -215,34 +215,42 @@ 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.Text = "Available Procedure Sets";
topnode.Tag = fi;
advTreeProcSets.Nodes.Add(topnode);
foreach (FolderInfo fic in fi.ChildFolders) foreach (FolderInfo fic in fi.ChildFolders)
{ {
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
newnode.Text = fic.ToString(); newnode.Text = fic.ToString();
newnode.Tag = fic; newnode.Tag = fic;
int tmp; //int tmp;
if (topnode == null) //if (topnode == null)
{ //{
newnode.Text = "Available Procedure Sets"; // newnode.Text = "Available Procedure Sets";
tmp = advTreeProcSets.Nodes.Add(newnode); // tmp = advTreeProcSets.Nodes.Add(newnode);
topnode = newnode; // topnode = newnode;
} //}
else //else
{ //{
newnode.Selectable = true; // newnode.Selectable = true;
newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; // newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; // newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
newnode.CheckBoxThreeState = false; // newnode.CheckBoxThreeState = false;
newnode.CheckBoxVisible = true; // newnode.CheckBoxVisible = true;
tmp = topnode.Nodes.Add(newnode); // tmp = topnode.Nodes.Add(newnode);
} //}
cntnd++; cntnd++;
if (fic.ChildFolderCount > 0) // allow for '+' for tree expansion if (fic.ChildFolderCount > 0) // allow for '+' for tree expansion
{ {
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);
topnode.Nodes.Add(newnode);
} }
} }
@ -342,9 +350,20 @@ 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.Name); // ex: "working draft"
crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures" crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures"
crumbs.Push(Mydocversion.MyFolder.MyParent.Name); // ex: "STPNOC-South Texas" FolderInfo fi = Mydocversion.MyFolder.MyParent;
while (fi != null)
{
if (fi.MyParent != null)
crumbs.Push(fi.Name);
fi = fi.MyParent;
}
crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree
// now walk the tree, looking for the node names we saved in the stack. // now walk the tree, looking for the node names we saved in the stack.