Esempio n. 1
0
 private void btnRun_Click(object sender, EventArgs e)
 {
     try
     {
         Objects.ForEach(o => o.BgColor = Color.Orange);
         VisitedNodes = new ObservableCollection <object>();
         VisitedNodes.CollectionChanged += _visitedNodes_CollectionChanged;
         BaseNetwork network = rbPredefinedNetwork.Checked ? (BaseNetwork)cbPredefinedNetworks.SelectedItem : _customNetwork;
         DistributedAlgorithm <int, string> algorithm = rbFromList.Checked ? (DistributedAlgorithm <int, string>)cbAlgorithms.SelectedItem : (DistributedAlgorithm <int, string>)Activator.CreateInstance((Type)((ComboBoxItem)cbClassFromDll.SelectedItem).Value);
         NodesManager.Instance.Nodes.Clear();
         NodesManager.Instance.Nodes.AddRange(network.GetNetwork(algorithm, new NetworkSimulator(), node_OnNodeMessage));
         NodesManager.Instance.Nodes.ForEach(n => ((NetworkSimulator)n.GetNetworkComponent()).CurrentNodeId = n.GetId());
         var messages = txtMessage.Text.Split(';');
         RedrawPanel(Objects, Connections);
         for (int i = 0; i < chlInitNodes.CheckedItems.Count; i++)
         {
             Objects.First(p => p.Id == ((Node <int, string>)chlInitNodes.CheckedItems[i]).GetId().Id).BgColor = Colors[i % 8];
             var thread  = new Thread(ExecuteInit);
             var message = i < messages.Length ? messages[i] : messages[messages.Length - 1];
             thread.Start(new List <object> {
                 i, message, Colors[i % 8]
             });
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error has occured. More information: " + ex);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Only to get structure, not intended for real use
 /// </summary>
 /// <param name="network"></param>
 /// <returns></returns>
 private List <Node <int, string> > ListOfNodesFromNetwork(BaseNetwork network)
 {
     return(network.GetNetwork(new Broadcast(), new NetworkSimulator(), node_OnNodeMessage));
 }