Ejemplo n.º 1
0
        private void RestoreToNetworkHierarchyTreeView(NetworkAddress address, NodeView node)
        {
            TreeNode parent         = networkHierarchyTreeView.Nodes[address.GetId(0) - 1];
            var      nodes          = parent.Nodes;
            var      currentAddress = new NetworkAddress(address.GetId(0));

            for (var i = 1; i < address.Levels - 1; i++)
            {
                var id = address.GetId(i);


                var subnetworkNode = new TreeNode();
                currentAddress      = currentAddress.Append(id);
                subnetworkNode.Text = currentAddress.ToString();
                subnetworkNode.Name = currentAddress.ToString();
                subnetworkNode.Tag  = new HierarchicalPathComputationServer(currentAddress,
                                                                            "127.0.0.1", Settings.Default.SignallingCloudListeningPort);

                if (!nodes.ContainsKey(subnetworkNode.Name))
                {
                    nodes.Add(subnetworkNode);
                    parent = subnetworkNode;
                    nodes  = parent.Nodes;
                }
                else
                {
                    parent = nodes[subnetworkNode.Name];
                    nodes  = parent.Nodes;
                }
            }


            var treeNode = new TreeNode {
                Tag  = node,
                Text = address.ToString(),
                Name = address.ToString()
            };

            if (!nodes.ContainsKey(treeNode.Name))
            {
                nodes.Add(treeNode);
            }
            else
            {
                nodes[treeNode.Name].Tag = treeNode.Tag;
            }
        }