Beispiel #1
0
        internal Node addClient(Point point)
        {
            foreach (Node node in nodeList)
            {
                if (node.Position.Equals(point))
                {
                    mainWindow.errorMessage("There is already node in that position.");
                    return(null);
                }
            }
            Address a;
            Node    client;
            Domain  d = checkWhatDomain(point);

            if (d == null)
            {
                a      = new Address(true, 0, 0, clientNodesNumber);
                client = new Node(point, Node.NodeType.CLIENT, a.getName(), 8000 + clientNodesNumber, 0, 0);
            }
            else
            {
                List <Subnetwork> temporaryListOfSubnetworks = checkWhatSubnetwork(point);
                Subnetwork        up = default(Subnetwork);
                if (temporaryListOfSubnetworks.Any())
                {
                    up = temporaryListOfSubnetworks.ElementAt(0);
                    foreach (Subnetwork s in temporaryListOfSubnetworks)
                    {
                        if (s.Size.Height < up.Size.Height &&
                            s.Size.Width < up.Size.Width)
                        {
                            up = s;
                        }
                    }
                }
                d.NumberOfNodes++;
                if (up == default(Subnetwork))
                {
                    a = new Address(true, d.Name, 0, d.NumberOfNodes);
                }
                else
                {
                    a = new Address(true, d.Name, up.Name - 100, d.NumberOfNodes);
                }
                client = new Node(point, Node.NodeType.CLIENT, a.getName(), 8000 + clientNodesNumber, d.ManagementPort, 0, d.NccPort);
            }
            ++clientNodesNumber;
            nodeList.Add(client);
            mainWindow.addNodeToTable(client);
            mainWindow.addNode(client);
            return(client);
        }
Beispiel #2
0
        public void addClientNode(int x, int y)
        {
            foreach (Node node in nodeList)
            {
                if (node.Position.Equals(new Point(x, y)))
                {
                    mainWindow.errorMessage("There is already node in that position.");
                    return;
                }
            }
            ClientNode client = new ClientNode(x, y, "CN." + clientNodesNumber, 8000 + clientNodesNumber);

            ++clientNodesNumber;
            nodeList.Add(client);
            addNodeToTable(client);
            mainWindow.addNode(client);
        }