From bb048290ef38d898baaaf14fc422146bc818b3a5 Mon Sep 17 00:00:00 2001 From: Kathy Date: Fri, 13 Nov 2009 13:40:08 +0000 Subject: [PATCH] --- .../VEObjects/VETreeNode.cs | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/PROMS/VEPROMS.CSLA.Library/VEObjects/VETreeNode.cs b/PROMS/VEPROMS.CSLA.Library/VEObjects/VETreeNode.cs index e9eb7811..66a45ad1 100644 --- a/PROMS/VEPROMS.CSLA.Library/VEObjects/VETreeNode.cs +++ b/PROMS/VEPROMS.CSLA.Library/VEObjects/VETreeNode.cs @@ -198,6 +198,7 @@ namespace VEPROMS.CSLA.Library try { VETreeNode tmp = new VETreeNode(o); + //tNext("Allocate VETreeNode"); //tmp.ResetNode(); if (o.HasChildren) @@ -224,6 +225,36 @@ namespace VEPROMS.CSLA.Library } } + void myItemInfo_Deleted(object sender) + { + VETreeNode parnode = Parent as VETreeNode; + PartInfo pi = parnode.VEObject as PartInfo; + Remove(); + // get rid of 'Steps', 'RNOs', i.e. grouping nodes, if there are no children. + if (pi != null && parnode.Nodes.Count == 0) + { + VETreeNode grndparnode = parnode.Parent as VETreeNode; + parnode.Remove(); + // if only 'Steps' node is left, move steps 'up' a level. + if (grndparnode != null && grndparnode.Nodes.Count == 1) + { + VETreeNode sibnode = grndparnode.Nodes[0] as VETreeNode; + PartInfo pisib = sibnode.VEObject as PartInfo; + if (pisib != null && (pisib.ToString() == "Sections" || pisib.ToString() == "Steps")) + { + if (!sibnode.ChildrenLoaded) sibnode.LoadChildren(); + while (sibnode.Nodes.Count > 0) + { + VETreeNode tmp = sibnode.Nodes[0] as VETreeNode; + tmp.Remove(); + grndparnode.Nodes.Add(tmp); + } + sibnode.Remove(); + } + } + } + } + //public IVEReadOnlyItem GetCsla() //{ // return _VEObject; @@ -237,7 +268,19 @@ namespace VEPROMS.CSLA.Library { _VEObject = o;// Save the BusinessObject ResetNode(); + ItemInfo myItemInfo = o as ItemInfo; + if (myItemInfo != null) + { + myItemInfo.Deleted += new ItemInfoEvent(myItemInfo_Deleted); + myItemInfo.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); + } } + + void MyContent_Changed(object sender) + { + Text = _VEObject.ToString(); + } + public VETreeNode(string s) : base(s) {