private void InsertNodeIntoTreeView(TreeNode AParent, DataView view, ACostCentreRow ADetailRow) { TreeNode newNode = new TreeNode(""); CostCentreNodeDetails NewNodeDetails = CostCentreNodeDetails.AddNewCostCentre(newNode, ADetailRow); NewNodeDetails.IsNew = false; SetNodeLabel(ADetailRow, newNode); if (AParent == null) { trvCostCentres.Nodes.Add(newNode); } else { InsertInOrder(AParent, newNode); } view.RowFilter = ACostCentreTable.GetCostCentreToReportToDBName() + " = '" + ADetailRow.CostCentreCode + "'"; if (view.Count > 0) { // A cost centre cannot be deleted if it has children. NewNodeDetails.CanDelete = false; NewNodeDetails.Msg = Catalog.GetString("Child Cost Centres must be deleted first."); NewNodeDetails.CanHaveChildren = true; foreach (DataRowView rowView in view) { InsertNodeIntoTreeView(newNode, view, (ACostCentreRow)rowView.Row); } } }
/// <summary> /// Add this new CostCentre as child of the currently selected node /// </summary> public void AddNewCostCentre(ACostCentreRow CostCentreRow) { trvCostCentres.BeginUpdate(); TreeNode newNode = trvCostCentres.SelectedNode.Nodes.Add(CostCentreRow.CostCentreCode); CostCentreNodeDetails NewCostCentre = CostCentreNodeDetails.AddNewCostCentre(newNode, CostCentreRow); trvCostCentres.EndUpdate(); FParentForm.SetSelectedCostCentre(NewCostCentre); // This will set my FSelectedCostCentre and my trvCostCentres.SelectedNode }