public System.Windows.Forms.TreeNode FindStreetNode(System.Windows.Forms.TreeNode streetNode) { foreach (System.Windows.Forms.TreeNode node in base.Nodes) { if (object.Equals(streetNode.get_Tag(), node.get_Tag())) { return node; } } return null; }
public void RemoveNode(System.Windows.Forms.TreeNode node) { base.BeginUpdate(); LocalAddress address = (LocalAddress) node.get_Tag(); if (address.Level == AddressLevel.MinAddress) { base.Nodes.Remove(node); } else if (address.Level == AddressLevel.Улица) { System.Windows.Forms.TreeNode parent = node.Parent; parent.Nodes.Remove(node); if (parent.Nodes.get_Count() == 0) { base.Nodes.Remove(parent); } } else if (address.Level == AddressLevel.Дом) { System.Windows.Forms.TreeNode node3 = node.Parent.Parent; System.Windows.Forms.TreeNode node4 = node.Parent; node4.Nodes.Remove(node); if (node4.Nodes.get_Count() == 0) { node3.Nodes.Remove(node4); } if (node3.Nodes.get_Count() == 0) { base.Nodes.Remove(node3); } } else { System.Windows.Forms.TreeNode node5 = node.Parent; System.Windows.Forms.TreeNode node6 = node.Parent.Parent; System.Windows.Forms.TreeNode node7 = node.Parent.Parent.Parent; node5.Nodes.Remove(node); if (node5.Nodes.get_Count() == 0) { node6.Nodes.Remove(node5); } if (node6.Nodes.get_Count() == 0) { node7.Nodes.Remove(node6); } if (node7.Nodes.get_Count() == 0) { base.Nodes.Remove(node7); } } base.EndUpdate(); }
public void AddNode(System.Windows.Forms.TreeNode node) { base.BeginUpdate(); LocalAddress address = (LocalAddress) node.get_Tag(); if (address.Level == AddressLevel.MinAddress) { System.Windows.Forms.TreeNode node2 = this.FindCityNode(node); if (node2 == null) { base.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } else { foreach (System.Windows.Forms.TreeNode node3 in node.Nodes) { node2.Nodes.Add((System.Windows.Forms.TreeNode) node3.Clone()); } } } else if (address.Level == AddressLevel.Улица) { System.Windows.Forms.TreeNode streetNode = this.FindCityNode(node.Parent); if (streetNode == null) { streetNode = base.Nodes.Add(node.Parent.get_Text()); streetNode.set_Tag(node.Parent.get_Tag()); streetNode.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } else { System.Windows.Forms.TreeNode node5 = this.FindHouseNode(streetNode, node); if (node5 == null) { streetNode.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } else { foreach (System.Windows.Forms.TreeNode node6 in node.Nodes) { node5.Nodes.Add((System.Windows.Forms.TreeNode) node6.Clone()); } } } } else if (address.Level == AddressLevel.Дом) { System.Windows.Forms.TreeNode node7 = this.FindCityNode(node.Parent.Parent); if (node7 == null) { node7 = base.Nodes.Add(node.Parent.Parent.get_Text()); node7.set_Tag(node.Parent.Parent.get_Tag()); System.Windows.Forms.TreeNode node8 = new System.Windows.Forms.TreeNode(node.Parent.get_Text()); node8.set_Tag(node.Parent.get_Tag()); node7.Nodes.Add(node8); node8.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } else { System.Windows.Forms.TreeNode node9 = this.FindHouseNode(node7, node.Parent); if (node9 == null) { node9 = node7.Nodes.Add(node.Parent.get_Text()); node9.set_Tag(node.Parent.get_Tag()); } node9.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } } else { System.Windows.Forms.TreeNode node10 = this.FindCityNode(node.Parent.Parent.Parent); if (node10 == null) { node10 = base.Nodes.Add(node.Parent.Parent.Parent.get_Text()); node10.set_Tag(node.Parent.Parent.Parent.get_Tag()); System.Windows.Forms.TreeNode node11 = new System.Windows.Forms.TreeNode(node.Parent.Parent.get_Text()); node11.set_Tag(node.Parent.Parent.get_Tag()); node10.Nodes.Add(node11); System.Windows.Forms.TreeNode node12 = new System.Windows.Forms.TreeNode(node.Parent.get_Text()); node12.set_Tag(node.Parent.get_Tag()); node11.Nodes.Add(node12); node12.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } else { System.Windows.Forms.TreeNode node13 = this.FindHouseNode(node10, node.Parent.Parent); if (node13 == null) { node13 = node10.Nodes.Add(node.Parent.Parent.get_Text()); node13.set_Tag(node.Parent.Parent.get_Tag()); } System.Windows.Forms.TreeNode node14 = this.FindHouseNode(node13, node.Parent); if (node14 == null) { node14 = node13.Nodes.Add(node.Parent.get_Text()); node14.set_Tag(node.Parent.get_Tag()); } node14.Nodes.Add((System.Windows.Forms.TreeNode) node.Clone()); } } base.EndUpdate(); }