This commit is contained in:
Kathy Ruffing 2009-11-20 11:40:07 +00:00
parent e3d76eb2e8
commit 1f71be0813

View File

@ -76,7 +76,7 @@ namespace VEPROMS.CSLA.Library
{
_VEObject = value;
base.Text = _VEObject.ToString();
ResetNode();
ResetNode("Dummy Set_VEObject");
}
}
//public void Refresh()
@ -110,12 +110,12 @@ namespace VEPROMS.CSLA.Library
Console.WriteLine("Error: {0}", ex.Message);
}
}
public void ResetNode()
public void ResetNode(string dummy)
{
if (_VEObject!=null && _VEObject.HasChildren && _ChildrenLoaded == false)
{
_ChildrenLoaded = false;// Reset the children loaded flag
this.Nodes.Add("Dummy");// Add a Dummy Node so that the item will appear to be expanable.
this.Nodes.Add(dummy);// Add a Dummy Node so that the item will appear to be expanable.
}
else
{
@ -131,14 +131,14 @@ namespace VEPROMS.CSLA.Library
}
public void RefreshNode()
{
ResetNode();// Drop Children
ResetNode("Dummy RefreshNode");// Drop Children
LoadChildren();// Load Children
}
public static VETreeNode GetFolder(int folderID)
{
VETreeNode tn = new VETreeNode(FolderInfo.Get(folderID));
//tn.Nodes.Add("Dummy");
tn.ResetNode();
tn.ResetNode("Dummy GetFolder");
return tn;
}
// public abstract void LoadChildren();
@ -179,9 +179,11 @@ namespace VEPROMS.CSLA.Library
this.Nodes.Clear();
//tReset();
DateTime tStart = DateTime.Now;
//TVAddChildren(_VEObject, this);
OnLoadingChildrenSQL(this, new VETreeNodeEventArgs());
IList ol;
if(_VEObject.GetType() == typeof(StepInfo) ||_VEObject.GetType() == typeof(SectionInfo) ||_VEObject.GetType() == typeof(ItemInfo) )
IList ol;
ItemInfo item = _VEObject as ItemInfo;
if (_VEObject.GetType() == typeof(StepInfo) || _VEObject.GetType() == typeof(SectionInfo) || _VEObject.GetType() == typeof(ItemInfo))
ol = ((ItemInfo)_VEObject).GetChildren(allParts);
else
ol = _VEObject.GetChildren();
@ -190,30 +192,7 @@ namespace VEPROMS.CSLA.Library
{
OnLoadingChildrenMax(this, new VETreeNodeEventArgs(ol.Count));
this.TreeView.BeginUpdate();
int icnt = 0;
foreach (IVEDrillDownReadOnly o in ol)
{
OnLoadingChildrenValue(this,new VETreeNodeEventArgs( ++icnt));
//tNext("Cycle");
try
{
VETreeNode tmp = new VETreeNode(o);
//tNext("Allocate VETreeNode");
//tmp.ResetNode();
if (o.HasChildren)
tmp.Nodes.Add("Dummy");// Add a Dummy Node so that the item will appear to be expanable.
else
tmp._ChildrenLoaded = true;// Reset the children loaded flag
//tNext("Add Children");
this.Nodes.Add(tmp);
//tNext("Add To Nodes");
}
catch (Exception ex)
{
Console.WriteLine("{0}\r\n{1}", ex.Message, ex.InnerException);
}
}
ExpandChildren(ol);
//}
//tNext("Set Nodes");
this.TreeView.EndUpdate();
@ -225,6 +204,78 @@ namespace VEPROMS.CSLA.Library
}
}
private void ExpandChildren(IList ol)
{
int icnt = 0;
foreach (IVEDrillDownReadOnly o in ol)
{
OnLoadingChildrenValue(this, new VETreeNodeEventArgs(++icnt));
//tNext("Cycle");
try
{
VETreeNode tmp = new VETreeNode(o);
if (o.HasChildren)
{
if (o is PartInfo)
{
tmp.Nodes.Clear();
tmp.ExpandChildren(o.GetChildren());
tmp._ChildrenLoaded = true;
}
else
tmp.Nodes.Add(string.Format("dummy: {0}", o.GetType().Name));// Add a Dummy Node so that the item will appear to be expanable.
}
else
tmp._ChildrenLoaded = true;// Reset the children loaded flag
this.Nodes.Add(tmp);
}
catch (Exception ex)
{
Console.WriteLine("{0}\r\n{1}", ex.Message, ex.InnerException);
}
}
}
private void TVAddChildren(IVEDrillDownReadOnly veobj, VETreeNode tn)
{
OnLoadingChildrenSQL(tn, new VETreeNodeEventArgs());
IList ol;
ItemInfo item = veobj as ItemInfo;
if (item != null && item.ItemID == 378)
Console.WriteLine("here");
if (veobj.GetType() == typeof(StepInfo) || veobj.GetType() == typeof(SectionInfo) || veobj.GetType() == typeof(ItemInfo))
ol = ((ItemInfo)veobj).GetChildren(true);
else
ol = veobj.GetChildren();
if (ol != null)
{
OnLoadingChildrenMax(this, new VETreeNodeEventArgs(ol.Count));
this.TreeView.BeginUpdate();
int icnt = 0;
foreach (IVEDrillDownReadOnly o in ol)
{
OnLoadingChildrenValue(this, new VETreeNodeEventArgs(++icnt));
try
{
VETreeNode tmp = new VETreeNode(o);
PartInfo pi = o as PartInfo;
if (pi == null && o.HasChildren)
tmp.Nodes.Add("Dummy");// Add a Dummy Node so that the item will appear to be expanable.
else
tmp._ChildrenLoaded = true;// Reset the children loaded flag
tn.Nodes.Add(tmp);
if (pi != null && o.HasChildren)
TVAddChildren(o, tmp);
}
catch (Exception ex)
{
Console.WriteLine("{0}\r\n{1}", ex.Message, ex.InnerException);
}
}
//}
this.TreeView.EndUpdate();
}
}
void myItemInfo_Deleted(object sender)
{
VETreeNode parnode = Parent as VETreeNode;
@ -267,20 +318,41 @@ namespace VEPROMS.CSLA.Library
: base(o.ToString())
{
_VEObject = o;// Save the BusinessObject
ResetNode();
ResetNode("Dummy VETreeNode(IVEDrillDownReadOnly o)");
ItemInfo myItemInfo = o as ItemInfo;
if (myItemInfo != null)
{
myItemInfo.Deleted += new ItemInfoEvent(myItemInfo_Deleted);
myItemInfo.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
myItemInfo.NewChild += new ItemInfoInsertEvent(myItemInfo_NewChild);
}
}
void myItemInfo_NewChild(object sender, ItemInfoInsertEventArgs args)
{
bool isExpanded = IsExpanded;
// Restore the tree as it currently is expanded.
Collapse();
Nodes.Clear();
_ChildrenLoaded = false;
ResetNode("Dummy myItemInfo_NewChild");
if (isExpanded) Expand();
}
void myItemInfo_NewSiblingBefore(object sender, ItemInfoInsertEventArgs args)
{
this.Parent.Nodes.Insert(Index,(new VETreeNode(args.ItemInserted)));
}
void myItemInfo_NewSiblingAfter(object sender, ItemInfoInsertEventArgs args)
{
this.Parent.Nodes.Insert(Index+1, (new VETreeNode(args.ItemInserted)));
}
void MyContent_Changed(object sender)
{
ContentInfo myContent = sender as ContentInfo;
ItemInfo myItemInfo = myContent.ContentItems[0];
Text = _VEObject.ToString();
}
public VETreeNode(string s)
: base(s)
{